项目中使用的是hibernate,在使用的过程中有些问题整的不是很明白,今天遇到这样一种现象,在一个方法中:
首先查库,得到一个实体的list,然后基于当前的行为,重新build了对象,因为要记该对象的变化记录,所以就拿之前list里边的的对象去作为历史值来处理 ,但是发现不对。因为在同一个session中,build一个id相同的对象,list中引用的对象也会跟着变。最后的解决方法是把该list作为参数传进来,在调用该函数的入口处先查询list,这样可以避免这个问题。个中机理不是很清楚,后续有时间可以研究下hibernate相关的实现。