首页 > hibernate 中怎么更新表中的所有数据

hibernate 中怎么更新表中的所有数据

问题环境: 有一张test表,里面有一个status字段,记录试题抽取状态。

需求: 我需要一次将表中的所有记录的status字段更新成'F'状态。

更新一条记录都没问题...现在打算一次更新表中的所有记录,就如写的sql语句那样

update test set status = 'F';

各位能帮忙出出主意??


没想到也会自问自答 ---

在大批量更新表中记录时:hibernate 有这样一种方法:形如

getSession().createQuery("update Test set status = 'F'").executeUpdate();

这种也能用于修改一次的单个对象。若要将这个对象修改多次...你会得到你期料外的结果。
hibernate的缓存机制使得在修改的第一次就将对象放入缓存中,以后的数次修改都是修改的这个对象,你数次修改的结果都会一样。

这时我们用hiberbate给我们提供修改单条记录的方法,就能避免这个问题

感谢此篇日志

【热门文章】
【热门文章】