object references an unsaved transient instance - save the transient instance before flushing 本是古典 何须时尚 2022-05-27 08:29 84阅读 0赞 错误提示后面还有一些提示,提示是哪个对象出现问题! 原因可能是:我们没有给这个对象赋值,此时 Hibernate 会 new 一个 **空对象** 保存给这个对象,空对象在数据库肯定是没有的,即提示所说的unsaved transient instance(未保存状态的临时实例 或者说 游离态)提示我们要先保存! 所以在保存该对象的时候就会错误。 解决的办法是: 1. 判断对象是否为空,空的话,直接设置这个对象为空(null)或者给个默认值,而不是给它个空对象! 例如: //如果不填部门则默认为该员工所在的部门 if (task.getDept()==null || task.getDept().getId()==null) { //task.setDept(null); Employee employee = empService.get(task.getEmp().getId()); task.setDept(employee.getDept()); } 如果您还有其他解决办法,或者觉得我所言有错误,欢迎留言。
还没有评论,来说两句吧...