在Grails项目中,如果我将实体类放在/ domain文件夹中,Grails会自动尝试使用GORM / Hibernate进行持久化。如果我正在寻找不同类型的商店,比如Mongo,Reddis等,我还可以将我的类放在域文件夹中并实现我自己的持久性逻辑吗?
我已使用hibernate
在domain
中停用了BuildConfig.groovy
和excludes 'hibernate,domain'
,但Grails仍抱怨。我可能只是将我的域类放在src/groovy/mypackage
中} ...
答案 0 :(得分:4)
Grails略微滥用术语域。 Grails中的域类是持久类,无论它们是使用Hibernate还是NoSQL还是两者兼容。如果你想自己管理东西,请将它们放在src / groovy中。
如果您想使用NoSQL,请考虑使用其中一个插件,例如: mongodb或redis-gorm。如果NoSQL插件是唯一安装的持久性插件(即你已经删除了Hibernate插件),那么grails-app / domain中的域类将使用该插件。如果您仍然安装了Hibernate插件,则域类将默认为Hibernate域类,但您可以指定它是具有mapWith
属性的NoSQL域类,例如static mapWith = "mongo"
。这在插件的文档中有描述。
你可能不想删除域名插件 - 我认为没有任何好处,而且很可能会破坏重要的功能。