Grails multi datasource domain issue

南笙酒味 提交于 2019-12-01 00:18:48

You should use newer docs, e.g. http://grails.org/doc/latest/guide/conf.html#dataSourcesAndEnvironments

It looks like you're trying to link across datasources. This isn't possible since each DataSource has a separate SessionFactory, and they cannot work directly together. The same problem happens when you use Hibernate and a NoSQL GORM plugin.

You can mimic it easily enough though. Given a domain class Foo that needs a reference to Provider, you can persist the foreign key and look it up on-demand (and this is really what Hibernate does for you when you join between two domain classes):

class Foo {
   Long providerId

   Provider getProvider() {
      providerId ? Provider.get(providerId) : null
   }
   void setProvider(Provider provider) {
      providerId = provider.id
   }
   static transients = ['provider']
}

Since Groovy treats getter/setter pairs as a property, you would use it like a "real" link:

def foo = ...
def bar = foo.provider.bar
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!