gpt4 book ai didi

java - hibernate 恩弗斯 : How to get revision from historical entity

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:38 25 4
gpt4 key购买 nike

我一定错过了一些明显的东西;然而,我正在努力寻找 Hibernate Envers 遇到的问题的答案。

假设我有一个名为 MyObject 的实体类,它是使用 envers 进行审核的。

如果我获取 MyObject 实例的当前副本,执行以下操作:

Session session = sessionFactory.getCurrentSession();
MyObject myobject1 = (MyObject) session.get(MyObject.class, 1234);

我得到了同一实例的历史副本(来自修订版 2):

Session session = sessionFactory.getCurrentSession();
AuditReader reader = AuditReaderFactory.get(session);
MyObject myobject2 = reader.find(MyObject.class, 1234, 2);

有什么方法可以区分 myobject1 和 myobject2 吗?我如何知道 myobject1 是当前副本而 myobject2 来自修订版 2?​​

最佳答案

没有“官方”方式。两者都只是用不同数据实例化的对象。

不过,您可以检查 session 是否包含 myobject1/myobject2 (使用 contians 方法: http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/Session.html )。只要您不清除或更改持久性上下文,这就会起作用,并且将为“当前”实体返回 true ,为历史实体返回 false 。但这更多的是一种变通办法,而不是适当的解决方案。

关于java - hibernate 恩弗斯 : How to get revision from historical entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911454/

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