這個問題是基於我問的here。相同的關係和相同的目標。我有一個事情的例子。我想獲得與所有與Bar實例相關的Bar實例關聯的Foo的所有實例。Grails /休眠標準ID inList
我在我的模型中有一個方法,它返回基於某些條件的對象列表。
class Foo {
static List findAllAssociatedWith(Object obj) {
def results = null
if(obj instanceof Bar) {
results = Foo.withCriteria() {
bars{
//inList("id", Thing.bars.id) // this does not work
inList("id", [new Long(3), new Long(4)]) // this works
}
}
}
return results
}
}
Thing.bars.id
返回IDS我要覈對清單,但顯然這是一個即使多頭有望整數的ArrayList。這是錯誤我得到:
java.util.ArrayList cannot be cast to java.lang.Long. Stacktrace follows:
Message: java.util.ArrayList cannot be cast to java.lang.Long
爲什麼Thing.bars.id
返回整數,而不是多頭的列表清單,我該如何解決?
UPDATE:
我發現打電話println Things.bars.id
後的問題。我希望它返回的數字是這樣一個ArrayList(整數或多頭):
[3,4]
,而是我的ArrayList,其中第一陣列名單是我想要的東西,第二個數組列表是空列表的ArrayList ,像這樣:
[ [ 3, 4 ], [] ]
不知道爲什麼Grails的做到這一點,但它周圍的一個簡單的方法,現在是Thing.bars.id.get(0)
感謝您的快速回復。我稍微問了一個類似的問題,並通過鏈接回到我之前有圖形的問題來更新這個問題。 – ubiquibacon