내 앱을 Grails 2.0으로 업그레이드하려고하는데 다음과 같은 문제가 있습니다. 공개 getter 개인 도메인 특성이 있습니다. createCriteria에서이 속성을 쿼리하고 싶습니다. 그리고 getter가 public 일지라도 "속성을 확인할 수 없습니다 ..."예외가 리턴됩니다. 나는 Jira 버그를 보았습니다 http://jira.grails.org/browse/GRAILS-8498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel 그러나 여전히 작동하지 않습니다. Grails 1.3.7은 정상적으로 작동했습니다.Grails 2.0 CreateCriteria 개인 속성을 쿼리 할 수 없습니다.
내 코드와 같은 것입니다 : 도메인 클래스
class MyClass {
protected boolean reserved = false
protected void setReserved(boolean reserved) {
this.reserved = reserved
}
public boolean getReserved() {
return this.reserved
}
}
쿼리
def c = MyClass.createCriteria()
def results = c.list {
eq('reserved', true)
}
이 될 수있는 문제는 것 때문에 이름을 속성 '예약하기'Grails의에서 예약 된 키워드 된 것입니다 다른에 대한 그것이 작동하는 다른 이름의 속성 ...
getter와 setter를 제거하면 작동합니다 (어쨌든 기본값보다 더 많은 것을 수행하지 않으므로). –
이 코드의 주요 목적은이 속성 설정을 비활성화하는 것입니다. 읽을 수 있도록하십시오. getter를 제거하고 속성을 public으로 만들려고했지만 응용 프로그램의 복잡성 때문에 다른 많은 문제가 발생했습니다. 그럼에도 불구하고, 속성을 public으로 만들면 원하는 기능을 잃을 것입니다.> setter를 숨 깁니다. – kuceram