Моя среда разработки заключается в следующем:Grails динамических методов поиска на доменных классов не видны через плагин проекты
Grails версия: 1.3.7.RELEASE
Выполните следующие действия:
mkdir GrailsProjects
cd GrailsProjects
grails create-plugin grails-domain
cd grails-domain
grails create-domain-class Book
cd ..
grails create-plugin grails-service
cd grails-service
grails create-service BookService
Добавить
grails.plugin.location."grails-domain" = "../grails-domain"
в верхней части файла
BuildConfig.groovy
вgrails-service
проектаИспользование текстового редактора изменить содержимое файла
Book.groovy
к:package grails.domain class Book { String name static constraints = { } }
Измените содержание файл
BookService.groovy
:package grails.service import grails.domain.Book class BookService { static transactional = true def someMethod() { def book = Book.findByName("Fooled by randomness") } }
На попытке вызвать метод BookService.someMethod
, Grails не смог найти способ findByName
на Book
. Book.name
видна внутри BookService.someMethod
, что указывает на то, что проект плагина grails-service
может разрешить код в проекте плагина grails-domain
.
Этапы в точности соответствуют указанным выше; никаких дополнительных шагов не было выполнено.
Является ли это ожидаемым поведением с проектами плагинов Grails? Есть ли другой способ разделить классы доменов и сервисов с Grails?
Я следил за вашими строками по строкам. Кроме того, я добавил контроллер в grails-service, чтобы я мог легко вызвать мой метод сервиса через run-app. Я выполнил запуск приложения из плагина grails-service и работал, как ожидалось. – Gregg