gpt4 book ai didi

java - 如何在hibernate环境中查询RevisionEntity

转载 作者:行者123 更新时间:2023-11-30 11:14:21 26 4
gpt4 key购买 nike

我试图用 Envers 创建的修订记录额外的用户数据。我能够使用 RevisionEntity 和 RevisionListener 做到这一点,但我无法检索记录的数据。我尝试了以下代码

    AuditQuery auditQuery = AuditReaderFactory
.get(factory.getCurrentSession()).createQuery()
.forRevisionsOfEntity(Currency.class, false, false)
.add(AuditEntity.id().eq("ENV_US"));

List<Object[]> l = auditQuery.getResultList();

这返回了一个列表对象数组中第一个元素是 Revision 第二个是 RevisionEntity,第三个是 RevisionType,但是 RevisionEntity 对象中的值都是 null。

这是 RevisionEntity 的 pojo

@Entity
@Table(name = "REVINFO")
@RevisionEntity(RevListener.class)
public class ExampleRevEntity {
@Id
@GeneratedValue
@RevisionNumber
@Column(name = "REV")
private int rev;

@RevisionTimestamp
@Column(name = "REVTSTMP")
private long revtstmp;

@Column(name = "USERID")
private String userId;

public String getUserId() {
return userId;
}

public void setUserId(String userId) {
this.userId = userId;
}

}

如果我做错了什么,请告诉我。

最佳答案

您可能需要实际使用该对象。 Hibernate/Envers 将返回一个惰性初始化对象,调试器可能无法看到这些值。在代码中调用 getter 后,应填充正确的值。

关于java - 如何在hibernate环境中查询RevisionEntity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25931281/

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