繁体   English   中英

JPA /如何以只读模式获取实体?

[英]JPA / How to fetch entity in read-only mode?

我面临一个问题,我需要以只读模式两次检索实体以进行比较(需要将指向同一实体的db对象与db分开,在比较之前,我需要对它们进行一些操作)。 由于我的JPA和Hibernate在EntityManager中不支持detach(),而且我无法将其更改为较新的版本,因此是否有任何解决方法,所以我可以获取这两个方法?

预先感谢您的帮助,

P.

提取后,您可以将实体转移到另一个像MyUnmanagedEntity这样的bean中。 只需使用未映射为@Entity的子类,因此不会持久化。 使用适当的构造函数初始化它,该构造函数采用原始构造并传输您需要的所有字段。

另一种方法是close()您的EntityManager以便它停止管理您的实体。 但这也会影响所有其他受管实体。

我认为您可以使用em.getDelegate()获得基础的Hibernate Session ,并在其上调用evict()

通过使用Apache Commons库的功能之一,更确切地说是Common BeanUtils( http://commons.apache.org/beanutils/ ),我设法通过一种变通方法实现了我的目标。 它包含一种复制实体bean内容(已分离)的方法,并且可以在不影响数据库中数据的情况下进行进一步处理。

谢谢您的帮助,

问候,体育。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM