2012-02-01 2 views
0

나는 Trade 클래스와 Operation 클래스를 가지고 있습니다. 데이터베이스에 매핑됩니다. 그래서 내가 할 때 :최대 절전 모드를 사용하여 데이터베이스에서 레코드를 수신

나는 무역 기록의 arraylist를 얻고, 나의 무역 실례를 통한 어떤 무역을위한 가동에 접근 할 수있다.

그러나, 내가 할 때

trades = session.createQuery(" 
    from Trade as trade 
    inner join trade.operations as operation 
    with to_char(operation.datetime, 'yyyyMMdd') = to_char(sysdate, 'yyyyMMdd') 
    order by operation.datetime" 
).list(); 

나는 각 요소 작동 및 무역 인스턴스를 포함하는 객체의 배열을 얻을.

조건 (두 번째 옵션과 동일)을 사용하여 레코드를 일련의 거래 (첫 번째 옵션과 동일)로 검색 할 수 있습니까?


는 I 시도 : 선택 무역 거래에서 내측 전시회 operation.datetime

의해 TO_CHAR (operation.datetime 'YYYYMMDD') = TO_CHAR (SYSDATE 'YYYYMMDD')의 조작으로 주문 trade.operations 참여함에

감사합니다. javatestcase. 그러나 trade.operations을 반복 할 때, 나는 오늘까지 어떤 연산도 포함하는 거래를 얻습니다. 그러나 다른 날 이후의 연산이라 할지라도 그 거래에 대한 모든 연산을 얻습니다. 그래서 그것은 조건을 만족시키지 못합니다.

단서가 있습니까?

미리 감사드립니다.

+1

에서 "select trade"을 (를) 추가하려고 시도했습니다 ... – javatestcase

답변

1

trade.operations에는 항상 해당 거래에 대한 모든 작업이 포함됩니다. hibernate는 변경 추적을 깨고 길 아래 많은 혼란을 야기하기 때문에 부분적으로 초기화 된 자식 콜렉션으로 거래를하지 않을 것이다. 따라서 가장 좋은 절전 모드는 당신에게 거래 쌍과 매칭 작업을 제공하는 것입니다. 무역 및 매칭 작업에서 필요한 모든 속성을 포함하는 클래스를 만들고 AliasToBeanTransformer를 사용합니다.

+0

답장을 보내 주셔서 감사합니다. 정말 유용합니다. 필자는 SQLAlchemy를 Python에서 최대 절전 모드와 매우 유사한 라이브러리를 사용했습니다. 늘어나는만큼 SQLAlchemy를 사용하면 조건에 따라 컬렉션을 검색 할 수 있습니다. – bribon

관련 문제