2013-06-20 2 views
0

내 엔터티 내에서 @OneToMAny realationship이 있습니다.JPA 열 삽입/삭제, 선택 해제

jpa가 결합 된 열에 대해 select를 생성하지 않도록 할 수 있습니까? beacuse 필자는 주 테이블에 많은 레코드를 가지고 있으며이를 선택할 때 각 레코드는 조인 된 열에 대해 select를 수행합니다. 이 선택을 사용하지 않도록 설정 하시겠습니까?

UPDATE :

public class Table01f implements Serializable { 

    @OneToMany(fetch=FetchType.LAZY , cascade = CascadeType.ALL, mappedBy = "table01f") 
    private List<Table02f> table02fList; 

    //getter & setter... 
} 

public class Table02f implements Serializable { 

    @JoinColumn(name = "F2PRP", referencedColumnName = "F1PRP", insertable = false, updatable = false) 
    @ManyToOne(optional = false) 
    @JsonIgnore 
    private Table01f table01f; 

    @OneToMany(fetch=FetchType.LAZY , cascade = CascadeType.ALL, mappedBy = "table02f") 
    private List<Table03f> table03fList; 

    //getter & setter... 
} 

public class Table03f implements Serializable { 

    @JoinColumns({ 
     @JoinColumn(name = "F3PRP", referencedColumnName = "F2PRP", insertable = false, updatable = false), 
     @JoinColumn(name = "F3BRN", referencedColumnName = "F2BRN", insertable = false, updatable = false)}) 
    @ManyToOne(optional = false) 
    @JsonIgnore 
    private Table02f table02f; 

//getter & setter... 
} 

감사의 사전 : 나는 LAZY 가져하지만 여전히 Table02f 및 Table03f의 선택을 만들어 삽입하는 시도 ...

이 내 코드입니다.

답변

2

그냥 @OneToMany 관계 페치 유형 LAZY을 추가

@OneToMany(fetch=FetchType.LAZY) 

당신이 당신의 주요 기관의 목록을로드 할 때, JPA는 SELECT의 생성을 피하고,이 관계에 대한 목록을 채울 수 없습니다.

JPA 문서에서이 기능을 사용하여 사용 방법을 이해할 수 있습니다.

+0

나는 그것은 그것은, 내 질문을 업데이 트했습니다 – user2046810

1

데이터가 필요하지 않은 경우 LAZY로 설정합니다 (일반적으로 모든 데이터는 항상 LAZY로 설정).

데이터가 필요한 경우 일괄 처리 페칭 또는 결합 페칭을 사용할 수 있습니다.

http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html

+0

.. 내 질문에 여전히 당신은 또한 가져 오기 그룹을 사용하여 고려할 수 있습니다 .. – user2046810

+0

작동하지 않거나 분야를 선택하는 것 여전히 작동하지 않는 업데이트되었습니다 당신은 JPQL에서 원한다. – James