내 DB 모델은 다음과 같습니다 :필터 CayenneDataObject getXXXArray() 항목에 매개 변수가 있습니까?
그래서 객체A a
에 대한 카이엔에서 나는 이것이 항목을 주어진에서 나에게 B의 모든 항목을 반환
a.getBArray()
을 할 수
A.id (1 : n) B.ad_id
. 그러나 active = 1
속성을 기반으로이 목록을 필터링하고 싶습니다.
분명히 Expression.fromString("active = 1")
을 SelectQuery
과 사용할 수 있지만이 접근법에서는이 쿼리를 실행하려는 A 인스턴스를 어떻게 연관시키는 지 찾을 수 없습니다.
다른 접근 방식은 a.getBArray()
에서 모든 항목을 검색하고 active == true
이있는 코드 만 검색하면이 방법은 비효율적입니다.
권장 사항은 대개 감사하겠습니다.
고맙습니다. Maxim.
- 편집 :
내 현재 솔루션은 수 (개체 이름이 각각 & B로 대체되었습니다) :
long aId = DataObjectUtils.longPKForObject(db_a_instance);
String bSQL = "select * from b where active = 1 and a_id = " + aId;
SQLTemplate bQuery = new SQLTemplate(B.class, bSQL);
List<B> dbBs = context.performQuery(bQuery);
더 나은, 더 elegent이 있다면 내가 부탁 해요 해결책?
감사합니다.