问题描述
select出来的对象放在集合里,在从集合里取出来,对象是什么状态?可以直接set么?
解决方案
前两个回答的补充,fudan_ly的回答不完全正确,update的作用是马上触发这个更新。孙宁振的回答也不正确,确实是set引发的update,但是要到事务提交的时候才会触发update sql的执行。完整回答如下:假设你的代码是在一个事务中,取出的对象就是Hibernate的代理对象,一旦事务结束,Hibernate会判断当前的对象是否set过新的值,有的话就触发update语句,如果显示的执行update,只不过是提前触发update的执行而已。
解决方案二:
是持久态,可以直接set,set的同时就会同步到数据库
解决方案三:
先用一个对接接收 A a = (A)list(i);在用a set 值 再update a 就可以了
时间: 2024-10-26 17:39:02