JPA脏检查

2023-11-30

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

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

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


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA脏检查 的相关文章

随机推荐

  • 如何在 iOS 中以编程方式更新 UILabel

    我在更新标签时遇到问题 它不会删除旧值 因此新值位于旧值之上 对此的任何帮助将不胜感激 timer NSTimer scheduledTimerWithTimeInterval 1 target self selector selector
  • Android:CountDownTimer 跳过最后一个 onTick()!

    Code public class SMH extends Activity public void onCreate Bundle b super onCreate b setContentView R layout main TextV
  • 哪个 DLL 有 PathCchAppend?

    我正在尝试有条件地使用 if可用 功能PathCchAppend 我已经从标题中获取了函数签名pathcch h 但是 当我尝试从中获取函数的地址时SHLWAPI DLL 它失败 auto pca GetProcAddress GetMod
  • 使用 jsp 从 POST 表单中提取 100 多个输入数据:还有更好的方法吗?

    我正在编写的 servlet 需要访问所有 100 多个 POST 参数 由表单填写 参数因类型而异 文本 选项 选择等 通过按正确顺序获取参数 servlet 构造了一些实例 Entity稍后将使用以下方法将对象保留在数据库中JPA 有没
  • 使用 LINQ 的情况

    好的 另一个 LINQ 问题 如何使用 LINQ 执行 IN 条件 我有一个 myObject 的 IEnumerable 列表 并且想要执行类似 myObject Description in Help Admin Docs 的操作 我怎
  • 客户端套接字上的 setSoTimeout 不会影响套接字

    我有一个包含三个线程的 Java 应用程序 每个线程打开一个套接字并连接到不同端口上的服务器 建立与服务器的连接后 我在每个套接字上设置了 so timeout 之后线程会阻塞等待 read 只有一个线程在 20 秒后超时 这是我设置的超时
  • 更好地理解查找字符串排列的解决方案 - javascript

    我试图更好地理解递归和函数式编程 我认为一个很好的实践示例是使用递归和现代方法 如简化 过滤和映射 创建字符串的排列 我发现了这段漂亮的代码 const flatten xs gt xs reduce cum next gt cum nex
  • 位字段结构赋值意外行为

    我不知道为什么 但位字段分配没有按预期工作 可能只是一件愚蠢的事情 但我一直无法找到问题所在 非常欢迎任何帮助 typedef struct a unsigned char a1 1 unsigned char a2 3 unsigned
  • Jssor - 如何动态添加幻灯片?

    我必须将图像加载放在客户端 这基本上是在浏览器完成页面请求后 触发 ajax 调用来加载图像列表 然后将幻灯片添加到 sider 容器中 在该 ajax 调用之后 照片数量未知 我尝试构建幻灯片的 html 文本 并将其分配到滑块容器中 然
  • 无法连接到数据库服务器 mysql workbench

    我正在尝试连接到 mysql 工作台 但出现以下错误 错误信息 无法连接到数据库服务器 用户 root 从主机到服务器的连接尝试失败 127 0 0 1 3306 无法打开数据库 请 1 检查mysql是否在服务器127 0 0 1上运行
  • 如何在MvvmCross中绑定View的layout_weight?

    绑定到 View 或任何其他 Android 控件 权重的最简单方法是什么 因为这个属性没有setter 所以我尝试了自定义绑定 但id似乎不起作用 public class ViewWeightCustomBinding MvxAndro
  • 如何在 Watir-WebDriver 中关闭 PhantomJS 的日志记录?

    我在 ruby 1 8 watir 代码中看到很多 PhantomJS 的日志信息 即 INFO 消息 我该如何将其关闭 我从谷歌搜索中得到了Java代码 但没有得到Ruby代码 Java PhantomJSDriver 禁用控制台中的所有
  • Azure 服务主体:为服务主体授予 appRoleAssignment 会更新原始权限的状态

    我正在尝试使用 Microsoft 图形 API 授予管理员对分配权限的同意 我执行的步骤如下 创建定义了 appRoles 数组的应用程序 使用 appId 创建服务主体 为服务主体授予 appRoleAssignment 我运行了 ht
  • 在 C 中创建字符串的方法有什么区别?

    C语言中这两种形式的字符串变量有什么区别 char string1 char string2 还有其他方法吗 非常感谢 char string1 foo string1 是一个指向字符串文字的指针 为了便于论证 它指向存储在程序的只读数据段
  • 向量的向量有哪些问题?

    I ve read that a vector of vectors is bad given a fixed 2nd dimension but I cannot find a clear explanation of the probl
  • iPhone:主屏幕和 App Store 的图标不同

    我想知道 iPhone 上的应用程序图标是否与 Apple App Store 中大版本中显示的图标略有不同 这里简短地讨论过 成功提交 AppStore 的提示 但我想确定是否有人有更多这方面的经验 举个例子 纽约时报 在其应用程序图标中
  • SQL 父/子 CTE 排序

    我正在尝试创建一个论坛设置 您可以在其中对特定帖子发表评论 并将回复按日期顺序显示在父级的正下方 父级下面只会有一个子级别 这是示例数据集 ID ParentID Datestamp 12 NULL 2013 03 01 1 00pm 13
  • 字典中 FIFO 顺序的 pythonic 方式

    我正在尝试用 python 填充字典 但我想保留键进入时的顺序 完全像列表一样 FIFO 即可做到这一点 例如 我读了一个名为 Animals txt 的文件 其中包含以下信息 animal tconservation status n d
  • 如何在启动屏幕上报告将程序集加载到 .Net 中的当前 AppDomain 的进度?

    我在显示程序集加载到 AppDomain CurrentDomain 的进度时遇到了一些困难 我想要做的是显示一个带有进度条的启动屏幕 我希望能够在每个程序集加载到 AppDomain 中的内存中时更新此进度条 这样 用户将有一个关于应用程
  • JPA脏检查

    我知道 JPA 实现者 如 Hibernate 监视附加到持久性上下文的实体 如果任何实体的任何字段发生更改 则更改会更新到数据库 我的问题是 JPA 如何跟踪更改 实体不会被拦截 被代理 所以可以肯定它不是通过 setter 的拦截 它是