object references an unsaved transient instance - save the transient instance before flushing

本是古典 何须时尚 2022-05-27 08:29 236阅读 0赞

错误提示后面还有一些提示,提示是哪个对象出现问题!

原因可能是:我们没有给这个对象赋值,此时 Hibernate 会 new 一个 空对象 保存给这个对象,空对象在数据库肯定是没有的,即提示所说的unsaved
transient instance(未保存状态的临时实例 或者说 游离态)提示我们要先保存! 所以在保存该对象的时候就会错误。
解决的办法是:

  1. 判断对象是否为空,空的话,直接设置这个对象为空(null)或者给个默认值,而不是给它个空对象!

例如:

  1. //如果不填部门则默认为该员工所在的部门
  2. if (task.getDept()==null || task.getDept().getId()==null) {
  3. //task.setDept(null);
  4. Employee employee = empService.get(task.getEmp().getId());
  5. task.setDept(employee.getDept());
  6. }

如果您还有其他解决办法,或者觉得我所言有错误,欢迎留言。

发表评论

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

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

相关阅读