나는 예를 들어, 컨트롤러, 나는 테이블의 레코드 수를 얻을 수도메인 클래스 정적 메서드가 grails "서비스"내부에서 작동하지 않는 이유는 무엇입니까?
IncomingCall.count()
를 호출 할 수있는 등
하는 Grails의 서비스를 쿼리, 도메인 정적 메서드에 액세스 할 수있게하려면 "IncomingCall"
하지만 서비스 내부에서이 작업을 수행하려고하면, 나는 오류 얻을 :
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'incomingStatusService': Invocation of init method failed; nested exception is groovy.lang.MissingMethodException: No signature of method: static ms.wdw.tropocontrol.IncomingCall.count() is applicable for argument types:() values: []
어떻게 이러한 방법은 주입합니까? 이를 수행하는 컨트롤러에는 마법 def 문이 없습니다. 또는 내 서비스 클래스에서 Hibernate를 사용할 수 없다는 문제가 있습니까?
나는 또한이 방법을 시도 :
import ms.wdw.tropocontrol.IncomingCall
import org.codehaus.groovy.grails.commons.ApplicationHolder
// ...
void afterPropertiesSet() {
def count = ApplicationHolder.application.getClassForName("IncomingCall").count()
print "Count is " + count
}
를 실패했습니다. ApplicationHolder.application.getClassForName ("IncomingCall")이 null을 반환했습니다. 이걸 너무 일찍 부르니? 호출 할 수있는 "late init"이 있습니까? 나는 그것이 "afterPropertiesSet()"의 목적이라고 생각했다. ...
당신이 포함 된 패키지를 포함하려고 했습니까 (예를 들어, Grails의 서비스 문서에서) __IncomingCall__ 도메인을 서비스 소스에 추가 하시겠습니까? – Jack
예. 나는 그것을위한 import 문을 가지고있다. –