ItemTagオブジェクトには、ItemオブジェクトとTagオブジェクトが含まれています。これらはJavaドメインオブジェクトです。findAll()が正しいオブジェクトタイプを返さない
この単純なクエリは、期待どおりに動作します。私は戻って、リストItemTagsを取得し、ItemTagsが行うことになっているすべての素晴らしいものを行うことができます。たとえば
def theTags1 = ItemTag.findAll("from ItemTag b")
を:予想通り
println(theTags1[0].tag.tag)
は私にこれを与える:
Pilgrim's Progress
しかし、ItemTagsのリストを取得するのではなく、条件に別のテーブルを追加するとすぐに、汎用オブジェクトのリストを取得するだけです。
例えば、以下の
def theTags2 = ItemTag.findAll("from ItemTag b, Tag a where b.tag= a")
theTags2.each {
theClass = it.getClass();
nameOfClass = theClass.getName();
println(nameOfClass)
}
戻り
[Ljava.lang.Object;
[Ljava.lang.Object;
[Ljava.lang.Object;
そして、私はすべての結果のオブジェクトを使用することはできません。たとえば:
println(theTags2[0].tag.tag)
は私に、このエラーを与える:
Exception evaluating property 'tag' for java.util.ArrayList, Reason: groovy.lang.MissingPropertyException: No such property: tag for class: java.lang.String
と
def exTag2 = (ItemTag) theTags2[0]
は私に、このエラーを与える:
Cannot cast object '[Ljava.lang.Object;@2d81f' with class '[Ljava.lang.Object;' to class 'org.maflt.flashlit.pojo.ItemTag'
私が取得するために行うには何が必要です使用可能なオブジェクト?ありがとう!休止状態において
これは私が必要としていたものです。完全性のために、私は、タグを取得するために、私は使用します: (タグ)theTags2 [0] [1] –