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

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

原因可能是:我们没有给这个对象赋值,此时 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());
            }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值