Я пытался создать библиотеку класса домена (который использует зависимость от GORM, сборку Gradle), которую можно включить в качестве зависимости от моих приложений Grails, так как они являются общими классами домена, используемыми в трех приложениях Grails.
Цель состоит в том, чтобы иметь общий набор классов домена, а не копировать классы домена по всему приложению.
Но когда я использую это в моем другом приложении Grails, он создает таблицу в базе данных.из этого класса домена, но поле не создано.
Для достижения этой цели я создал приложение Gradle / Groovy, создал классы POJO в моем src / main / groovy / abc / xyz, аннотированном с помощью
grails.gorm.annotation.Entity
Я создаю приложение, публикую его в своем локальном репозитории m2, а затем использую его в качестве зависимости в моем другом приложении grails.
Это создаст таблицу в моей БД, но ей не удалось создать столбцы.Я пробовал аннотированные поля с
javax.persistence.Column
, но это также не работает.
import grails.gorm.annotation.Entity
import org.grails.datastore.gorm.GormEntity
@Entity
class People implements GormEntity<People> {
@javax.persistence.Column public String firstName
@javax.persistence.Column public String lastName
static constraints = {
firstName blank:false
lastName blank:false
}
}
при попытке создать экземпляр этого класса и сохранить его в БД из другого приложения Grails, я получил следующую ошибку:
Either class [adcomm.dom.People] is not a domain class or GORM has not been initialized correctly or has already been shut down. If you are unit testing your entities using the mocking APIs. Stacktrace follows:
java.lang.reflect.InvocationTargetException: null
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ExceptionInInitializerError: null
at adcomm.ad.api.RestService.$tt__rssFeed(RestService.groovy:19)
at grails.transaction.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:96)
at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93)
at adcomm.ad.api.RestController.index(RestController.groovy:14)
... 3 common frames omitted
Caused by: java.lang.IllegalStateException: Either class [adcomm.dom.People] is not a domain class or GORM has not been initialized correctly or has already been shutdown. If you are unit testing your entities using the mocking APIs
... 7 common frames omitted
Что я здесь делаю неправильно, так этоЕсть лучший подход или решение для этого.Пожалуйста, помогите / совет.
Спасибо Милан