2011-02-13 5 views
2

많은 수의 노드를 다 대 다 관계로 (부모/자식을 통해) 서로 저장해야합니다. JPA에서 어떻게 할 수 있습니까?어떻게 JPA에 트리 구조를 저장할 수 있습니까?

부모님/자녀 목록에 @ManyToMany를 사용할 수 있다는 것을 알고 있지만 JPA는 모든 부모와 부모님을로드합니다. 제가 할 수있는 방법이 있습니까? 한 단계 만 부모님이나 자녀들 만 들를 수 있습니까?

지금합니다 (Node.java)이 비 작동 코드 :

public String name; 

@ManyToMany 
@JoinTable(name = "NodeParent") 
public List<Node> parents; 

@ManyToMany 
@JoinTable(name = "NodeChilds") 
public List<Node> childrens; 

답변

2

이 JPA의 경우는 개념 연산 lazy loading 있습니다.

아직 지속성 컨텍스트 내에있을 때 컬렉션을 반복하면서 이전에로드되지 않은 엔터티를 참조 할 때마다 필요시로드됩니다.

또한 엔티티의 필요성 (트리를 가져 오는 데 필요한 정도)을 알고있는 경우 fetch join 연산자를 사용하여 JPQL (투영 쿼리)을 작성할 수 있습니다.

마지막으로 JPA 2.1에 포함될 수있는 최대 절전 모드 특정 솔루션은 fetch profiles입니다. Fetch profilesFetch Profiles in Hibernate 3.5을 참조하십시오.

관련 문제