2013-05-21 2 views
0

나는 자체 참조 필드와 테이블이Grails는,

def results = Book.withCriteria{ 
    eq("version", "null") 
} 

그러나 나는이 예외 받고 있어요 : 버전이없는 레코드 예약 테이블은 (자신의 버전 필드가 null), 다음 코드는 작동하지 않습니다

org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of Book.id 

어떤 검색어를 사용해야합니까?

+0

btw, 내가 받고있는 오류입니다 : org.hibernate.PropertyAccessException : IllegalArgumentException Book.id의 getter 호출이 발생했습니다. – iMiX

답변

3

version은 GORM에서 낙관적 잠금에 사용되는 키워드입니다. domaincriteria을 수정하여 기준이 적절한 결과를 반환하도록하십시오.

// 도메인

class Book { 
    Integer id 
    String name 
    Book bookVersion 
} 

// 기준 질문에

또한
def book = new Book(name: "test", version: null) 
book.id = 1 
book.save(flush: true) 

def results = Book.withCriteria{ 
    isNull("bookVersion") 
} 

assert results && results[0] instanceof Book 

주의, bookVersion 유형 Book이다, 그것은 Stringnull 비교 될 수 없습니다.

+0

감사합니다. – iMiX