hibernate的保存问题(问题有点急,小女子在此先谢过大家了哈)

苜蓿gt 2014-03-07 03:10:08
问题描述:
执行:
User user=new User();
user.setName("abc");
userDao.save(user);
我可以打印出ID:System.out.println(user.getId());
但是:数据库中没有存入我的数据
在此过程中,程序并没有报错。
同样的:我朋友在他电脑上访问我的数据库,同样的代码,他能成功保存。

谢谢大家了!
看在女生节的份上,大家帮帮小女子吧!急~~~
...全文
626 48 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
Super赛亚人 2014-03-11
  • 打赏
  • 举报
回复
引用 43 楼 u010111184 的回复:
[quote=引用 36 楼 qq573616 的回复:] [quote=引用 1 楼 u011559804 的回复:] 不给user id能save?
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。 楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新[/quote] 其实save的时候也可以定义id的,不过明显不如直接用序列好~不是说不能用~[/quote] 是可以用啊,但是这哥们说的是没id 不能save
苜蓿gt 2014-03-11
  • 打赏
  • 举报
回复
最后,谢谢大家的帮助。
苜蓿gt 2014-03-11
  • 打赏
  • 举报
回复
问题解决了,很弱智的错误。程序没有问题,访问传参错了。 错误:http://www.***/***?&name=abc 正确:http://www.***/***?name=abc
slade_yu 2014-03-11
  • 打赏
  • 举报
回复
把你的basedao发出来看看
苜蓿gt 2014-03-11
  • 打赏
  • 举报
回复
这两天在维护另一个系统,所以还没来个急解决这个问题。 我觉得我的问题出在我程序save了,但是没有被save到数据库中。
引用 36 楼 qq573616 的回复:
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。 楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新
引用 42 楼 yzxgenius 的回复:
不要用的spring管理事务,spring管理事务本来存在导致数据库连接锁死的bug,用hibernate管理事务。
Legend-Hu 2014-03-10
  • 打赏
  • 举报
回复
引用 37 楼 u011559804 的回复:
[quote=引用 36 楼 qq573616 的回复:] [quote=引用 1 楼 u011559804 的回复:] 不给user id能save?
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。 楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新[/quote] 好吧,脑抽了。。。[/quote] 学习了!
  • 打赏
  • 举报
回复
引用 1 楼 u011559804 的回复:
不给user id能save?
不给id也行的!数据库配置主键id为自增的就行了!
Super赛亚人 2014-03-10
  • 打赏
  • 举报
回复
楼主,我的看法 是因为 你的family 与user 是一对一对应关系,你开始dao.save(family),family还在session 中,在保存user 也就把 family 再保存一次,大概是二级缓存的原因,2次取的family 是一样的。所以出错。在dao.save(family) 时,强制刷新flush方法
sliwey 2014-03-10
  • 打赏
  • 举报
回复
引用 36 楼 qq573616 的回复:
[quote=引用 1 楼 u011559804 的回复:] 不给user id能save?
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。 楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新[/quote] 好吧,脑抽了。。。
Super赛亚人 2014-03-10
  • 打赏
  • 举报
回复
引用 1 楼 u011559804 的回复:
不给user id能save?
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。 楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新
逍遥jc 2014-03-10
  • 打赏
  • 举报
回复
引用 36 楼 qq573616 的回复:
[quote=引用 1 楼 u011559804 的回复:] 不给user id能save?
是我孤陋寡闻还是你误人子弟,save 要毛的id,update 才要吧。 楼主如果可以得到id,hibernate 的 看看flush 方法,将数据刷新[/quote] 其实save的时候也可以定义id的,不过明显不如直接用序列好~不是说不能用~
slade_yu 2014-03-10
  • 打赏
  • 举报
回复
不要用的spring管理事务,spring管理事务本来存在导致数据库连接锁死的bug,用hibernate管理事务。
only_qin_wo 2014-03-10
  • 打赏
  • 举报
回复
在user.hbm文件中看看 对family的配置。 也可能是重复保存
young4u2011 2014-03-09
  • 打赏
  • 举报
回复
目测Family和User对应的表中主键id为int类型,且自增,所以new新对象后,使用save()会自动给id赋值。Family和User之间不知道是“一对多”还是“多对多”的关系,暂且当“一对多”。
引用 11 楼 gt_1234567 的回复:
[quote=引用 4 楼 l359122505 的回复:] 提供的线索有点少啊,不好判断,妹子,多提供些代码
引用 9 楼 zhangxiaojie0321 的回复:
妹子 上代码吧。
代码太长了,我就简单概述哈 代码: 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, Remark, 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_.Remark as Remark27_ 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, Remark) 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_.Remark as Remark33_, 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)[/quote] 然后,看看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);这样的语句。
放纵的青春 2014-03-08
  • 打赏
  • 举报
回复
根据你的报错信息目测的话 是因为你数据库中有一个id为13的user对象 而你新插入的这个对象id还是userid=13?
孙来贵 2014-03-07
  • 打赏
  • 举报
回复
引用 14 楼 gt_1234567 的回复:
再补充一段: 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]
这个错误很明显,相同的对象有冲突了,session中的user对象与familily.getId()关联的user对象冲突了,解决办法很简单,session 中有就直接用,没有在get就可以了;不解释
sxl-shuai 2014-03-07
  • 打赏
  • 举报
回复
大神好 多
苜蓿gt 2014-03-07
  • 打赏
  • 举报
回复
引用 22 楼 heaimnmn 的回复:
我知道啊,我说你在服务器端写个main函数调用试试,可以插入吗?
刚测试错了 都可以插入
苜蓿gt 2014-03-07
  • 打赏
  • 举报
回复
引用 29 楼 u010241813 的回复:

session.beginTransaction().commit();
有没有提交事务
这个不是框架自动管理了么?我没有写
  • 打赏
  • 举报
回复

session.beginTransaction().commit();
有没有提交事务
加载更多回复(27)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧