我的數據庫模型如下:使用參數過濾CayenneDataObject getXXXArray()條目?
A.id (1 : n) B.ad_id
所以在卡宴的對象A a
我可以做a.getBArray()
返回我所有B中的條目從這個給定的一個項目。然而,我想根據酒店active = 1
對此列表進行過濾。
顯然我可以使用Expression.fromString("active = 1")
和SelectQuery
,但是對於這種方法,我無法找到如何將A實例關聯到我想要在其上運行此查詢的方式。
不同的方法是檢索a.getBArray()
中的所有條目,並在代碼中篩選僅搜索那些具有active == true
的條目,這種方法是IMHO低效的。
建議大多讚賞。
謝謝, 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);
,我問,如果有一個更好,更高貴解?
謝謝。