2014-11-24 131 views
2

我們對Spring Data Envers(0.2.0.RELEASE)使用Hibernate Envers(4.3.5.Final)。閱讀與Hibernate Envers審覈的關係

用下面的實體設置我不能閱讀C對B中的列表(這始終是空的),當餘查詢實體A的特定版本:

@Entity 
@Audited 
class A { 
    private Integer id; 
    @ManyToMany 
    private List<B> bList = new ArrayList<>(); 
} 

@Entity 
@Audited 
class B { 
    private Integer id; 
    @ManyToMany 
    private List<C> cList = new ArrayList<>(); 
} 

@Entity 
@Audited 
class C { 
    private Integer id; 
} 

下表生成:

A,A_AUD,A_B,A_B_AUD,B_C,B_C_AUD

我的猜測是,這是不是真的有可能,因爲審計表缺乏從A到C的關係的信息,但我不知道。你可以證實這一點或給我一個提示如何實現這一點?

回答

0

我剛剛使用Hibernate Envers 5.2.7測試過,並沒有任何問題。也許這是已經固定的老錯誤或它的Spring數據Envers實現的一個問題:

final EntityA a = auditReader.find(EntityA.class, aId, revision); 
assertNotNull(a); 
assertTrue(!a.getBList().isEmpty()); 
for (EntityB b : a.getBList()) { 
    assertTrue(!b.getCList().isEmpty()); 
    for(EntityC c : b.getCList()) { 
    assertNotNull(c); 
    System.out.println(c); 
    } 
} 

上面打印出我的EntityC實例就好了。

相關問題