2011-07-01 1 views
1

Hibernate를 모르는 클라이언트에게 RMI를 통해 전송해야하는 JPA + Hibernate 엔티티가 있으므로 최대 절전 모드를 "정리"하는 방법을 만들었습니다 그것에서 그러나내 객체에서 Hibernate를 정리하지만 게으르지 않습니다.

// shortened 
public class Player { 
    private Set<Item> ownedItems; 
    public void makeSerializable() { 
     ownedItems = new HashSet<Item>(ownedItems); 
    } 
} 

, 내가 makeSerializable Hibernate는 내가 원하지 않는이 아직로드되어 있지 않은 경우 게으른로드 ownedItems에 시도 및 최대 절전 모드 세션이 있기 때문에 또한 불가능한 것이다 호출 할 때. 대신 ownedItems이로드되지 않은 경우 null 또는 빈 세트로 설정하고 싶습니다.

어떻게하면됩니까?

답변

3
if (!Hibernate.isInitialized(ownedItems)) { 
    ownedItems = new HashSet<Item>(); 
} 

세션 필요없이 컬렉션이 초기화되는지 테스트하는 방법입니다.

관련 문제