ItemTag-Objekte enthalten ein Item-Objekt und ein Tag-Objekt. (Dies sind Java-Domänenobjekte.)findAll() Nicht zurückgeben Korrekter Objekttyp
Diese einfache Abfrage funktioniert wie erwartet. Ich erhalte eine Liste ItemTags zurück und kann all die schönen Dinge, die ItemTags tun sollen:
def theTags1 = ItemTag.findAll("from ItemTag b")
Zum Beispiel:
println(theTags1[0].tag.tag)
gibt mir dies wie erwartet:
Pilgrim's Progress
Sobald ich jedoch eine weitere Tabelle zu den Kriterien hinzufüge, bekomme ich statt einer Liste von ItemTags nur eine Liste generischer Objekte.
beispiels folgenden
def theTags2 = ItemTag.findAll("from ItemTag b, Tag a where b.tag= a")
theTags2.each {
theClass = it.getClass();
nameOfClass = theClass.getName();
println(nameOfClass)
}
kehrt
[Ljava.lang.Object;
[Ljava.lang.Object;
[Ljava.lang.Object;
Und ich kann nicht verwenden, auf alle resultierenden Objekte. Zum Beispiel:
println(theTags2[0].tag.tag)
gibt mir diese Fehlermeldung:
Exception evaluating property 'tag' for java.util.ArrayList, Reason: groovy.lang.MissingPropertyException: No such property: tag for class: java.lang.String
und
def exTag2 = (ItemTag) theTags2[0]
gibt mir diese Fehlermeldung:
Cannot cast object '[Ljava.lang.Object;@2d81f' with class '[Ljava.lang.Object;' to class 'org.maflt.flashlit.pojo.ItemTag'
Was muss ich tun, um verwendbare Objekte? Vielen Dank!
Das ist genau das, was ich brauchte. Nur der Vollständigkeit halber verwende ich: (Tag) theTags2 [0] [1] –