我想说,别个连接我的电脑都可以save成功,但是我自己连接就不可以
解决方案 »
- connection接口
- 问个菜鸟问题:
- 查询后分页出错,快帮忙!
- IIS里面怎么设置JSP网站?
- 将log4j的级别设置为DEBUG之后,stuts打印出无数多的信息,严重影响我看自己的调试信息。请教高人怎么解决?
- The requested resource is not available.
- session timeout 后,如何将页面重定向到一个登陆页面或弹出一个对话框
- 谁还要《JSP编程指南(第二版)》的源代码呀,我这里有。
- java.lang.NullPointerException
- hibernate注解建表问题
- ajax 传递参数到servlet的问题
- 文件下载时出现D:\upload\uploadfile (拒绝访问。)
我是直接在后台写代码测试的,就是模拟浏览器访问的我程序。
然后,我朋友在他电脑上访问我的tomcat,是可以save成功的。
然后,我本机就比较神奇了。各种无解啊~~
代码:
Family family=new Family();
System.out.println("family="+family.getId());
familyDao.save(family);
System.out.println("family="+family.getId());
User user=new User();
user.setFamily(family);
userDao.save(user);
报错:
family=:null
Hibernate: insert into Zhijia_Gfamily_T_UserFamily (FamilyCode, FamilyNickName, FamilyNum, RegisterTime, MicroSignal, QQ, SinaTwitterNo, QQTwitterNo, Email, MolbilePhone, Re, UserID, AvatarUrl) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
family=:44
Hibernate: select familyacco0_.AccountID as AccountID27_, familyacco0_.FamilyID as FamilyID27_, familyacco0_.AccountCode as AccountC3_27_, familyacco0_.NoticeState as NoticeSt4_27_, familyacco0_.CurGoldNum as CurGoldNum27_, familyacco0_.RecGoldNum as RecGoldNum27_, familyacco0_.PreGoldNum as PreGoldNum27_, familyacco0_.Re as Re27_ from Zhijia_Gfamily_T_FamilyAccount familyacco0_ order by familyacco0_.AccountID desc limit ?
Hibernate: insert into Zhijia_Gfamily_T_FamilyAccount (FamilyID, AccountCode, NoticeState, CurGoldNum, RecGoldNum, PreGoldNum, Re) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: select user0_.UserID as UserID33_, user0_.FamilyID as FamilyID33_, user0_.UserCode as UserCode33_, user0_.MolbilePhone as MolbileP4_33_, user0_.Password as Password33_, user0_.MicroSignal as MicroSig6_33_, user0_.QQ as QQ33_, user0_.SinaTwitterNo as SinaTwit8_33_, user0_.QQTwitterNo as QQTwitte9_33_, user0_.Email as Email33_, user0_.RealName as RealName33_, user0_.NickName as NickName33_, user0_.Sex as Sex33_, user0_.OnlineGameID as OnlineG14_33_, user0_.RegisterTime as Registe15_33_, user0_.Re as Re33_, user0_.SinaCode as SinaCode33_, user0_.QQCode as QQCode33_, user0_.isHead as isHead33_, user0_.MachineCode as Machine20_33_, user0_.IsVisitor as IsVisitor33_, user0_.AvatarID as AvatarID33_, user0_.RoleID as RoleID33_ from Zhijia_Gfamily_T_User user0_ where user0_.MachineCode=? and user0_.IsVisitor=0
org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [com.zhijia.gfamily.po.player.User#13]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.zhijia.gfamily.po.player.User#13]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:661)
并且,打印出来的family=44,数据库中没有对应的数据
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.zhijia.gfamily.po.player.User#13]
Family family=new Family();
System.out.println("family="+family.getId());
familyDao.save(family);
System.out.println("family="+family.getId());
User user=new User();
user.setFamily(family);
userDao.save(user);
刚new出来的family,System.out.println("family="+family.getId());肯定是空指针啊。你都没赋值。
第一个为null 第二个是44
=====================================
作为ID 13的User对象已经存在了,这个你需要看下关于Hibernate的Entity管理状态
由于你的User是new出来的,保存后能打印ID,不知道你的Dao里是怎么写的...是数据库自增的吗,还是如何赋值的。
这种错误一般由于两个主键相同的对象,在不同事务中,且不同的管理状态下,hibernate无法区分你要保存的对象才会出现的,因为保存时,hibernate还会去检查内存的
http://developer.51cto.com/art/200907/133235.htm
久等了。刚试了。可以插入。
久等了。刚试了。可以插入。
补充一下,我main函数直接调Dao层,对象可以保存进去。但是我调service层的那个方法,就报错了。保存错误
session.beginTransaction().commit();有没有提交事务
代码:
Family family=new Family();
System.out.println("family="+family.getId());
familyDao.save(family);
System.out.println("family="+family.getId());
User user=new User();
user.setFamily(family);
userDao.save(user);
报错:
family=:null
Hibernate: insert into Zhijia_Gfamily_T_UserFamily (FamilyCode, FamilyNickName, FamilyNum, RegisterTime, MicroSignal, QQ, SinaTwitterNo, QQTwitterNo, Email, MolbilePhone, Re, UserID, AvatarUrl) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
family=:44
Hibernate: select familyacco0_.AccountID as AccountID27_, familyacco0_.FamilyID as FamilyID27_, familyacco0_.AccountCode as AccountC3_27_, familyacco0_.NoticeState as NoticeSt4_27_, familyacco0_.CurGoldNum as CurGoldNum27_, familyacco0_.RecGoldNum as RecGoldNum27_, familyacco0_.PreGoldNum as PreGoldNum27_, familyacco0_.Re as Re27_ from Zhijia_Gfamily_T_FamilyAccount familyacco0_ order by familyacco0_.AccountID desc limit ?
Hibernate: insert into Zhijia_Gfamily_T_FamilyAccount (FamilyID, AccountCode, NoticeState, CurGoldNum, RecGoldNum, PreGoldNum, Re) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: select user0_.UserID as UserID33_, user0_.FamilyID as FamilyID33_, user0_.UserCode as UserCode33_, user0_.MolbilePhone as MolbileP4_33_, user0_.Password as Password33_, user0_.MicroSignal as MicroSig6_33_, user0_.QQ as QQ33_, user0_.SinaTwitterNo as SinaTwit8_33_, user0_.QQTwitterNo as QQTwitte9_33_, user0_.Email as Email33_, user0_.RealName as RealName33_, user0_.NickName as NickName33_, user0_.Sex as Sex33_, user0_.OnlineGameID as OnlineG14_33_, user0_.RegisterTime as Registe15_33_, user0_.Re as Re33_, user0_.SinaCode as SinaCode33_, user0_.QQCode as QQCode33_, user0_.isHead as isHead33_, user0_.MachineCode as Machine20_33_, user0_.IsVisitor as IsVisitor33_, user0_.AvatarID as AvatarID33_, user0_.RoleID as RoleID33_ from Zhijia_Gfamily_T_User user0_ where user0_.MachineCode=? and user0_.IsVisitor=0
org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [com.zhijia.gfamily.po.player.User#13]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.zhijia.gfamily.po.player.User#13]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:661)然后,看看hbm中是如何维护Family和User的关系,如果是由Family中维护,在Family的hbm中应该有“one-to-many”,如果是由User维护,在User的hbm中应该有“many-to-one”。看报错的样子像是前一种情况,而且在<set>中设置了cascade="save-update"属性。不知道你的示例代码是不是完整的,在userDao.save(user);这句之前,有没有类似family.getUsers().add(user);这样的语句。
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。
楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。
楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新
好吧,脑抽了
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。
楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新
好吧,脑抽了
学习了!
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。
楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新其实save的时候也可以定义id的,不过明显不如直接用序列好~不是说不能用~
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。
楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新其实save的时候也可以定义id的,不过明显不如直接用序列好~不是说不能用~
是可以用啊,但是这哥们说的是没id 不能save
正确:http://www.***/***?name=abc