简体   繁体   English

使用AuditQuery获取关联的实体

[英]Fetching associated entities with AuditQuery

For example I have two entities: 例如,我有两个实体:

@Entity
@Audited
@Table(....
public class Worker
{
    private Long id;
    private String name ;
}

@Entity
@Audited
@Table(....
public class Department
{
    private Long id;
    private String departmentName;
    private Worker worker;

}

I want to display the following data for Department : 我要显示Department的以下数据:

| | departmentName | departmentName | name (from fetched entity worker ) | name (来自提取的实体worker )|

When using AuditQuery to get audit information for entity Department , is it possible to fetch the entity Worker to display name value for more human readable display? 使用AuditQuery获取实体Department审计信息时,是否可以获取实体Worker以显示name值,以便于人类阅读?

不支持此功能,因此您必须使用本机查询并连接实际的数据库表。

EAGER loading is not supported by envers, all association can only be lazy loaded. envers不支持EAGER加载,所有关联只能被延迟加载。 An alternative solution to doing joins by hand, is initializing lazy fields of an entity. 手动执行连接的另一种方法是初始化实体的惰性字段。

My solution to this problem was to go through all fields using java reflection ( see ), finding proxies by using Hibernate.isInitialized(...) and initializing them with Hibernate.initialize(...) . 我对这个问题的解决办法是去通过使用Java反射(所有领域 ),通过使用发现代理Hibernate.isInitialized(...) ,并与他们进行初始化状态,Hibernate.initialize(...) 。

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

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