gpt4 book ai didi

java - Hibernate - 版本属性在更改时调用自动更新?

转载 作者:行者123 更新时间:2023-12-01 13:13:22 24 4
gpt4 key购买 nike

当以编程方式检索实体并操作其某些属性时,会调用自动更新,而无需在提交时通过 hibernate 手动调用 session.update() 来增加我的数据库生成的版本列。 (甚至进行验证)。
我对我的高版本值和验证感到惊讶。

hibernate 4.3.1

实体仍附加到 session 。

伪代码:

Session session = sessinFactory.openSession();
Transaction tr = session.beginTransaction();

Entity entity = session.get(Entity.class, 1);

entity.setFoo("foo");

tr.commit();
session.close(); // here fake-update takes place

问题:

这是一个功能吗?

我可以尝试分离我要操作的实例。

或者这是一个错误?对我来说,这更像是一个错误,因为我没有调用更新。但不是假更新。

最佳答案

是的,这是一个功能。当调用 tr.commit() 时, session 将被刷新。检查与 session 关联的每个对象以查看其是否“脏”(已更改状态)。无论是否调用显式保存,每个更改的对象都将保留到数据库中。另外,如果实体脏了,Hibernate 将在刷新期间自动增加版本属性。

关于java - Hibernate - 版本属性在更改时调用自动更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com