0
我實現了equals(使用lombok和我的業務密鑰)。在單元測試中,我想要一個簡單的assertEquals,但是從hibernate返回的對象相關對象是一個代理。我怎樣才能得到實際的實體?hibernate:equals由於代理返回false
我實現了equals(使用lombok和我的業務密鑰)。在單元測試中,我想要一個簡單的assertEquals,但是從hibernate返回的對象相關對象是一個代理。我怎樣才能得到實際的實體?hibernate:equals由於代理返回false
你必須使用初始值設定項。見下面的方法示例。在比較之前使用此方法以確保您沒有比較代理。
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;
}
你可以發佈你的實體類和測試用例! – invariant