Grails在不同的数据源中创建域对象
我想根据一个条件在不同的数据源中创建一个域对象,但是当我们实例化一个新对象,比如Grails在不同的数据源中创建域对象,grails,gorm,grails-2.0,Grails,Gorm,Grails 2.0,我想根据一个条件在不同的数据源中创建一个域对象,但是当我们实例化一个新对象,比如newfoo().save()时,无法设置要执行的数据源 我还注意到,如果我执行new Foo().dataSource2.save()操作,除了dataSource2之外,它还保存在默认(未命名)数据源中。我们如何仅在一个数据源中实例化对象并仅在其中保存 我使用的是grails2.4.3 编辑:使其清晰。我想在运行时动态选择要在其中创建用户的数据源。似乎new Foo()。dataSource2.save()以后不
newfoo().save()
时,无法设置要执行的数据源
我还注意到,如果我执行new Foo().dataSource2.save()
操作,除了dataSource2
之外,它还保存在默认(未命名)数据源中。我们如何仅在一个数据源中实例化对象并仅在其中保存
我使用的是grails2.4.3
编辑:使其清晰。我想在运行时动态选择要在其中创建用户的数据源。似乎
new Foo()。dataSource2.save()
以后不会尝试将其保存在未命名的数据源中。这个解决方案实际上是可行的。Grails并没有为此提供现成的解决方案,但是由于它是基于Spring构建的,所以您应该能够使用AbstractRoutingDataSource和一些线程局部变量使其工作。然而,在Hibernate中,您可能会丢失辅助缓存,而且可能还有其他的怪癖。这是可以做到的,但需要做很多工作。