hibernate更新数据问题
问题描述:
现在项目中有个更新操作
public void updateApp(Trainingapproval trainingapproval,Integer i) {
Trainingapproval trainingapproval2=(Trainingapproval) this.hibernateTemplate.load(Trainingapproval.class, i);
trainingapproval2=trainingapproval;
this.hibernateTemplate.update(trainingapproval2);
}
//this.hibernateTemplate是注入好的,没问题
这样书写提示错误(The given object has a null identifier: com.coe.dto.Trainingapproval)
求解更新操作怎么实现,传入的参数为更新后的对象(封装好了,最好不改),小弟先谢谢,坐等答案~~~
答
参数1(Id 为null 也就是没有主键)
(Trainingapproval trainingapproval2 )引用1 = 加载1
引用1 = 参数1
update(引用1 相当于 参数1 )
那么你的这个过程与 加载1 没有关系,
也就是 你update 时候hibernate 会根据 主键 ID 进行匹配更新
而现在你的id 为null
所以应该用
记得有个方法 ,忘记了 好象是 savaOrUpdate(参数1)
答
或者 你把 参数1的每个属性
通过set方法 设置到 加载1 中