2012-11-14 39 views
0

我實現了equals(使用lombok和我的業務密鑰)。在單元測試中,我想要一個簡單的assertEquals,但是從hibernate返回的對象相關對象是一個代理。我怎樣才能得到實際的實體?hibernate:equals由於代理返回false

+0

你可以發佈你的實體類和測試用例! – invariant

回答

0

你必須使用初始值設定項。見下面的方法示例。在比較之前使用此方法以確保您沒有比較代理。

public static <T> T initializeAndGetTargetObject(T entity) { 
    if (entity == null) { 
     throw new 
      NullPointerException("Entity passed is null"); 
    } 

    Hibernate.initialize(entity); 
    if (entity instanceof HibernateProxy) { 
     entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer() 
       .getImplementation(); 
    } 
    return entity; 
}