hibernate:总是更新给定的记录,即使它不是脏的

k0pti3hp  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(284)

我的要求是更新表的记录,即使记录不是脏的。默认情况下,如果传递的所有列都相同,hibernate将忽略update查询。但我不想那样。原因是,我们在数据库insert/update/delete上编写了一些触发器,需要知道是否有人试图更新任何记录。这是应用程序的一个非常关键的元素,我们希望这样做。
我在这上面浏览了很多,但是找到了@dynamicupdate,但是我想要的是它的反面。
任何帮助都会很有帮助。

e4eetjau

e4eetjau1#

你需要使用类似 session.flush() 每次更新后,强制后续更新在同一会话/事务中执行实体的“真实”保存。无法提供更多建议,因为您没有提供任何代码示例。

vuktfyat

vuktfyat2#

如果您有一个版本属性,即用 @Version 你可以用 OPTIMISTIC_FORCE_INCREMENT 对于加载总是会导致增加版本的写入的实体:https://docs.oracle.com/javaee/7/api/javax/persistence/lockmodetype.html#optimistic_force_increment

相关问题