作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是持久性方面的新手,我想执行以下操作:
1) 将数据库的一部分加载到实体中并存储在文件中
2) 从文件中加载这些实体,将它们放在托管上下文中(这样所有的@JoinColumn 和@JoinTable,尤其是那些具有惰性获取类型的,将正常工作)并确保我不会不小心更新数据库他们。
所有这一切的要点是,每次我启动应用程序时,我不想为几乎永远不会改变的表调用数据库 - 所以我想将它们存储在本地,最好是在一个文件中。
虽然第 1) 部分非常简单,但我对第 2 部分) 有一些担忧。我认为只要确保不调用 em.flush(),loadObject 和 em.persist() 就可以正常工作。
但有一次我想检查数据库中的对象是否未更改。如果我在我的反序列化实体上调用 persist(),同时数据库发生变化,刷新后哪个版本会保留?
有更好的方法吗?
最佳答案
从数据库中加载此对象的“托管”副本。然后更新从您从文件中读取的对象复制属性。
您将拥有一个尚未序列化到数据库中的“托管”实体。
根据您的逻辑流程,您可以在将它与数据库实例合并之前中止它。
关于java - 如何反序列化实体,将其置于托管上下文中,但不保留任何更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6815708/
我是一名优秀的程序员,十分优秀!