Использование доменных классов Grails без Hibernate или GORM - PullRequest
4 голосов
/ 29 января 2012

В проекте Grails, если я помещаю свои классы сущностей в папку / domain, Grails автоматически пытается использовать GORM / Hibernate для сохранения. Если я использую хранилище другого типа, например Mongo, Reddis и т. Д., Могу ли я все же поместить свои классы в папку домена и реализовать собственную логику персистентности?

Я отключил hibernate и domain в BuildConfig.groovy, используя excludes 'hibernate,domain', но Grails по-прежнему жалуется ... возможно, я должен просто поместить свои доменные классы в src/groovy/mypackage ...

1 Ответ

4 голосов
/ 29 января 2012

Grails слегка неправильно использует термин домен.Доменные классы в Grails - это постоянные классы, независимо от того, являются ли они постоянными с Hibernate или NoSQL или с обоими.Если вы хотите управлять вещами самостоятельно, поместите их в src / groovy.

Если вы хотите использовать NoSQL, подумайте об использовании одного из плагинов, например, mongodb или redis-gorm.Если плагин NoSQL является единственным установленным плагином персистентности (т. Е. Вы удалили плагин Hibernate), то плагин будет использовать класс домена в grails-app / domain.Если у вас по-прежнему установлен подключаемый модуль Hibernate, класс домена по умолчанию будет являться классом домена Hibernate, но вы можете указать, что это класс домена NoSQL со свойством mapWith, например static mapWith = "mongo".Это описано в документации по плагинам.

Вы, вероятно, не хотите удалять плагин домена, хотя я не думаю, что есть какая-либо выгода, и он, скорее всего, нарушит важные функции.

...