Exception in thread "main" org.hibernate.TransientObjectException: object references an unsaved tran

﹏ヽ暗。殇╰゛Y 2021-09-17 06:14 221阅读 0赞

今天在使用一对多,多对一保存数据的时候出现了这个错误

Hibernate错误:

  1. Exception in thread "main" org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: zhongfucheng.domain.Employee

为啥出现这个错误呢???在保存对象的时候,发现这个对象还有存在外键,这个外键是在另一个实体里面。这个实体如果不存在或者实体的主键为空,就会报这个错误!

而我在保存的时候,并没有把拥有外键的对象保存进去….只保存了“一”方面的对象。

  1. //创建对象
  2. Dept dept = new Dept();
  3. dept.setDeptName("开发部");
  4. Employee zs = new Employee();
  5. zs.setEmpName("张珊");
  6. zs.setSalary(1111);
  7. Employee ls = new Employee();
  8. ls.setEmpName("李四");
  9. ls.setSalary(2222);
  10. //添加关系
  11. dept.getSet().add(zs);
  12. dept.getSet().add(ls);
  13. session.save(dept);
  14. /*当时我没有把Emploey对象保存一起保存...因此出现了这个错误 session.save(zs); session.save(ls);*/

还有一个解决方案:在映射文件中配置级联保存更新

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,221人围观)

还没有评论,来说两句吧...

相关阅读