【问题标题】:Grails changing datasource at runtimeGrails 在运行时更改数据源
【发布时间】:2013-11-12 13:14:50
【问题描述】:

我被要求为单独的用户(假设他将拥有自己的数据库)实现具有单独域的逻辑,这意味着所有域将在运行时映射到不同的数据库。 我知道听起来很傻

如何在用户登录后更改数据源(持久性配置文件)而数据源 应该在应用程序启动时加载。

有可能吗?

注意:我想在运行时将某个域的数据源一次更改为另一个数据源。

【问题讨论】:

  • 嘿 sachin,我面临着类似的问题..你能在 vishal.sujanian@gmail.com 上联系我吗

标签: hibernate grails grails-orm


【解决方案1】:

您可以在DataSource.groovy 文件中映射多个数据源,并且可以创建多个领域类,然后您可以在运行时在这些数据源之间执行任何CRUD 操作。

参考文献

【讨论】:

  • 我的意思是说一个域映射到database1中的一个表,同一个域是否可以在运行时映射到database2中的一个表???
  • 是的,可以像 datasources(['lookup', 'auditing']) 那样将同一个域映射到不同的数据源。您可以将域类与域类中的所有数据库datasource 'ALL' 映射。阅读grails.org/doc/2.2.1/guide/conf.html#multipleDatasources 以获得更清晰的信息。
  • 感谢您的关注,但我不想同时将我的域指向 2 个数据源,我想将我的域的数据源更改为另一个不同的数据源。
  • 多个数据源(多才多艺的领域类)是实现需求的绝佳方法。域能够为所有数据源提供服务。只需在运行时告诉域您要在哪个数据源中执行 CRUD 操作。
  • 查看答案中给出的链接。创建多个数据源,当想要在特定数据源中执行某些操作时,只需更改数据源名称即可。 def userClass = User.class; User user = userClass.${dataSourceName}.findByName('amit').
猜你喜欢
  • 1970-01-01
  • 2015-03-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
相关资源
最近更新 更多