Я хочу, чтобы служба grails имела доступ к статическим методам домена, для запросов и т. Д.
Например, в контроллере я могу позвонить
IncomingCall.count()
для получения количества записей в таблице "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") возвратил ноль. Это слишком рано, чтобы называть это? Можно ли назвать «поздний инициал»? Я думал, что это было целью "afterPropertiesSet ()" ...