2

在我的 grails 2 应用程序中,我在 Datasources.groovy 中配置了多个数据源。我的域类映射指定应使用所有数据源

class Book {
    static mapping = { datasource 'ALL' }

对于基本的 Gorm 调用,我可以指定要使用的数据源。

Book.lookup.save() 正确使用“查找”数据源

有没有办法指定条件应该使用哪个数据源?

我已经尝试了以下 4 个解决方案,但没有任何运气

  1. def c = Book.lookup.createCriteria(); c.list{...

    对 .list 的调用抛出:java.sql.SQLException: Connection is closed

  2. def c = Book.createCriteria(); c.lookup.list{...
    没有这种方法

  3. 注入数据源

    def dataSource_lookup

    ...

    Book.createCriteria(dataSource_lookup)
    没有这种方法

  4. 指定标准所在的整个服务应该使用特定的数据源似乎不适用于标准,也不适用于基本的 save() 调用。我正在运行 grails 2.1.0。

    static datasource = 'lookup'

4

1 回答 1

1

不是一个很好的解决方案,但是如果您事先访问数据源(大概在同一个休眠会话中),它确实有效。

Book.lookup.read(1)
def c = Book.lookup.createCriteria()
c.list{...
于 2012-08-23T17:46:13.963 回答