gpt4 book ai didi

java - 如何反序列化实体,将其置于托管上下文中,但不保留任何更改?

转载 作者:行者123 更新时间:2023-11-29 09:20:27 26 4
gpt4 key购买 nike

我是持久性方面的新手,我想执行以下操作:

1) 将数据库的一部分加载到实体中并存储在文件中

2) 从文件中加载这些实体,将它们放在托管上下文中(这样所有的@JoinColumn 和@JoinTable,尤其是那些具有惰性获取类型的,将正常工作)并确保我不会不小心更新数据库他们。

所有这一切的要点是,每次我启动应用程序时,我不想为几乎永远不会改变的表调用数据库 - 所以我想将它们存储在本地,最好是在一个文件中。

虽然第 1) 部分非常简单,但我对第 2 部分) 有一些担忧。我认为只要确保不调用 em.flush(),loadObject 和 em.persist() 就可以正常工作。

但有一次我想检查数据库中的对象是否未更改。如果我在我的反序列化实体上调用 persist(),同时数据库发生变化,刷新后哪个版本会保留?

有更好的方法吗?

最佳答案

从数据库中加载此对象的“托管”副本。然后更新从您从文件中读取的对象复制属性。

您将拥有一个尚未序列化到数据库中的“托管”实体。

根据您的逻辑流程,您可以在将它与数据库实例合并之前中止它。

关于java - 如何反序列化实体,将其置于托管上下文中,但不保留任何更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6815708/

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