修改hibernate返回的结果集,结果他自动将修改结果更新到数据库中

修改hibernate返回的结果集,结果他自动将修改结果更新到数据库中

问题描述:

我在action中通过 Criteria ca = this.getSession().createCriteria(Test.class);查询获得纪录list
根据需求将list里的实体某个字段进行了包装,结果包装完成后他自动将我包装的结果更新到数据库中了,这个问题应该怎么解决

代码如下

if(list!= null){
for(Test test:list){
if(StringUtils.isNotEmpty(test.getStatus()))
test.setStatus(StatusEnum.valueOf(test.getStatus()).getValue());
}
}
这是后台数据库执行顺序
注:用的分页查询

Hibernate: select * from ?
Hibernate: select tuser0_.
Hibernate: update TMS_TASK_INFO
Hibernate: select count(*) as y0_ from TMS_TASK_INFO this_

本身这个更新是没问题的 也是hibernate不错的功能, 你系统维护数据库对象就可以了,
问题在于:对于数据库对象, 增删改都是针对数据库的操作, 不update到数据库就不应该去修改他, 可以把值都copy到你业务的VO对象中再操作. 用VO对象来控制业务, 而不是持久化的对象。

不要让这个模型做来多的事情, 功能单一才是好的。