hibernate - 仅在某些领域类或具有多个数据库的 Grails 项目上使用 GORM 的 Grails

标签 hibernate grails grails-orm grails-2.0 grails-domain-class

我有一个使用一些专有 NoSQL DB 的 Grails 应用程序。我禁用了 hibernate 插件。我有许多定义了许多约束的域类,并且有自己的 save() 和 get() 实现,它们调用一些处理持久性的 java 服务。一切正常。

但现在,我们与客户达成协议(protocol),将一些内容直接保存到他们的 MySQL 数据库中。一开始很简单。我配置了他们的数据库连接,启用了 hibernate 插件,并创建了一个新的域类来处理它。在测试应用程序中一切正常,但是当我在主项目中启用 hibernate 插件时,不再启动。

Hibernate 正在尝试将所有域映射到数据库中的表,当然它们不存在(因为正在使用 NoSQL DB)。

我的问题是:我可以只为几个域启用 hibernate 吗?或者我可以指示某些域不使用 hibernate/戈姆吗?还是按包装? Grails 如何为同一个项目处理多个数据库?

最佳答案

您可以设置multiple datasources照顾 NoSQL 数据库和 MySQL 数据库。然后,您将留下使用 Java 服务进行持久性的域对象。

您正在对它们使用约束,但您是否像在它们上使用动态查找器一样利用 Gorm 静态 API?为了将它们从 hibernate 实现中抽象出来,我会尝试将它们从 grails-app/domain 中移出。至src/groovy或使用 static mapWith = 'none'在类里面。

关于hibernate - 仅在某些领域类或具有多个数据库的 Grails 项目上使用 GORM 的 Grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252449/

相关文章:

mysql - 如何使用 Spring 5 公开服务?

Grails 集成测试 - getBean() 的空对象

grails - 如何在 Grails 中获取请求 URI?

performance - Grails hibernate session 批量

go - 如何在golang中使用事务

grails - 域类函数与服务函数 [Grails]

java - CriteriaBuilder 即时到 postgres TIMESTAMP 转换

java - Hibernate 5 中的 StatelessSessionImpl

java - Hibernate 事务回滚是否有效?

grails - 在Grails中一个对象被两个或多个共享时,如何设置数据库模式?