2015-08-21 26 views
1

例如關聯的實體,我有兩個實體:的讀取與AuditQuery

@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價值?

回答

1

此功能不受支持,因此您必須使用本機查詢並加入實際的數據庫表。

+0

我通過使用java反射初始化代理解決了我的問題。 – danizmax

+0

你也可以在這裏添加答案,也許它也會幫助其他人。 –

0

EAGER envers不支持加載,所有關聯只能被延遲加載。手工加入的另一種解決方案是初始化實體的惰性字段。

我對此問題的解決方案是使用java反射(see)遍歷所有字段,使用Hibernate.isInitialized(...)查找代理並使用Hibernate.initialize(...)對它們進行初始化。