2012-11-14 17 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; 
}