日期:2014-05-17  浏览次数:20606 次

hibernate的load问题
如果load取到一个对象后再对这个对象的某些字段set重新赋值封装的话会导致自动更新该记录··
如果用了update="false"那是可以不自动更新了··但如果我想更新的时候又不能更新了·这样不行·
请问一下除了那个克隆对象外还有其他方法可以实现set后不自动更新吗··或想问一下一般正常来说··会不会直接从load出的对象进行重新封装呢?例如表里存有汇率···我想取出来经过处理把汇率全部换算好再返回到页面··谢谢各位啦·



------解决方案--------------------
这个其实是hibernate缓存。
我觉得有两种方法
1、当向前台返回对象的时候,重新new一个这个对象,然后对这个对象进行操作,最后返回这个对象给前台。
2、汇率处理的时候,不一定非要在后台处理,可以放在前台处理。(这样后台只要取出这个对象即可)
------解决方案--------------------
对象处于持久态,对其所做的操作(修改)都会同步到数据库中。解决方法:

1.脱离session中移出(evict)。
2.在对其修改时确保对象已处于托管状态(简单点说就是当前没有事务存在),这样也不会进行更新。

...【我想取出来经过处理把汇率全部换算好再返回到页面】
可以考虑定义自己的数据类型来实现,Hibernate支持自定义类型。