【问题标题】:Fetching associated entities with AuditQuery使用 AuditQuery 获取关联实体
【发布时间】:2015-11-15 05:04:43
【问题描述】:

例如我有两个实体:

@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;

}

我想为Department显示以下数据:

| departmentName | name(来自获取的实体worker)|

当使用AuditQuery 获取实体Department 的审计信息时,是否可以获取实体Worker 以显示name 值,以便更易于阅读?

【问题讨论】:

    标签: java hibernate orm audit hibernate-envers


    【解决方案1】:

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

    【讨论】:

    • 我通过使用 java 反射初始化代理解决了我的问题。
    • 你也可以在这里添加答案,也许它也会对其他人有所帮助。
    【解决方案2】:

    envers 不支持EAGER 加载,所有关联只能延迟加载。手动连接的另一种解决方案是初始化实体的惰性字段。

    我对此问题的解决方案是使用 java 反射 (see) 遍历所有字段,使用 Hibernate.isInitialized(...) 查找代理并使用 Hibernate.initialize(...) 初始化它们。

    【讨论】:

      猜你喜欢
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      相关资源
      最近更新 更多