2011-11-09 2 views
0

내 프로젝트에서 JPA + 최대 절전 모드를 사용하고 있습니다. 이미 기존 데이터베이스에서 데이터를 검색해야하며 수정할 수는 없습니다.JPA 엔티티 복합 인덱스 콜렉션

스키마는 여러 조직으로 구성되어 있으며 각 회사에는 많은 지폐가 있고 각 지폐에는 많은 라인 항목이 있습니다. > orgId (비 고유 인덱스)

LINEITEM 테이블 - -> orgId, billId

법안 데이터베이스 스키마 (현재 현재) 법안 테이블 에서

organization 
{ 

id; 

name; 

... 
} 

bill 
{ 

    id; 

    organization o; 

    amount; 

    .... 

    (EAGER, mappedBy=bill) 
    List<Lineitem> lineitems; 
} 


lineitem 
{ 
    id; 

    organization o; 

    (EAGER) 
    bill b; 


    itemCode 

    ..... 
} 

인덱스 요청되고, 그것의 A는 기본 키에 인출되기 때문에,이 제 괜찮

Select * 
from bills 
where id = ? 

을하고 . 지금은 billId의 데이터베이스 수준에서 인덱스가없는

select * from lineitems where billId = ?

을하고있는 lineitems

를 가져옵니다. orgId, billId에는 고유하지 않은 복합 색인이 있습니다. 내가 그 최대 절전 모드가 billId와 함께 orgId 사용 lineitems를 가져 그래서 넣어해야합니까 무엇

.. 등 ..

select * from lineitems where billId = ? and orgId = ?

나는 적당한 제목 어떻게 될지 몰랐다.

감사합니다.

답변

0

그것은 모두 ORG_ID를 사용하는 @joincolumns를 사용하여 다음 (lineitems의 목록) 법안의 실체에 mappedBy=bill을 제거하여 근무하고 조인

에 대한 bill_id