문제

ItemTag 객체에는 항목 객체와 태그 객체가 포함되어 있습니다. (이것은 Java 도메인 개체입니다.)

이 간단한 쿼리는 예상대로 작동합니다. 나는 목록 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'

사용 가능한 물체를 얻으려면 어떻게해야합니까? 감사!

도움이 되었습니까?

해결책

최대 절전 모드에서

"from ItemTag b, Tag a where b.tag= a"

쿼리는 크로스 조인입니다. 이 쿼리의 결과는 첫 번째 항목이 ItemTag 인스턴스이고 두 번째는 태그 인스턴스 인 객체 배열 목록입니다.

예를 들어 사용해야합니다

(ItemTag) theTags2[0][0]

첫 번째 ItemTag 인스턴스에 액세스하려면

다른 팁

ItemTag 객체를 얻으려고한다고 가정하면 HQL을 다음과 같은 것으로 변경할 수도 있습니다.

def theTags2 = ItemTag.findAll("select b from ItemTag  b, Tag a where b.tag= a")

그것은 당신이 하나의 객체 만 원한다고 말합니다. 또한 조인 조건을 사용할 수 있어야합니다.

def theTags2 = ItemTag.findAll("from ItemTag b where b.tag is not null")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top