gpt4 book ai didi

hibernate - JPA 脏检查

转载 作者:行者123 更新时间:2023-12-01 07:29:38 28 4
gpt4 key购买 nike

我知道 JPA 实现者(如 Hibernate)监视附加到持久性上下文的实体,如果任何实体的任何字段发生更改,则更改会更新到数据库。

我的问题是,JPA 如何跟踪更改?实体没有被拦截(通过代理),所以肯定它不是通过“setter”的拦截,它是如何完成的?

我对这个“脏检查”功能的实现细节很感兴趣。

最佳答案

他们做一些完全依赖于实现的事情(即 JPA 规范在这里对你没有帮助)。

一些实现(例如 DataNucleus、OpenJPA)使用字节码增强并且能够有效地管理自加载以来哪些字段是脏的(并且不需要保留原始字段值的快照)。

其他实现必须与之前的某个值进行比较(或通过与数据存储的比较)。

关于hibernate - JPA 脏检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8507922/

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