如何在Grails2.4.X中获得自定义数据源引用?

如何在Grails2.4.X中获得自定义数据源引用?,grails,groovy,datasource,gorm,Grails,Groovy,Datasource,Gorm,我需要从Grails2.4.5中的自定义查找数据源查询SQL。我不能使用投影,因为SQL太复杂了 文档中没有提供关于此案例的任何解释 我无法在此查找数据库中创建视图或类似结构 My DataSource.groovy如下所示: development { dataSource { dbCreate = "none" driverClassName = "oracle.jdbc.OracleDriver" url = "jdbc:oracle

我需要从Grails2.4.5中的自定义查找数据源查询SQL。我不能使用投影,因为SQL太复杂了

文档中没有提供关于此案例的任何解释

我无法在此查找数据库中创建视图或类似结构

My DataSource.groovy如下所示:

development {
    dataSource {
        dbCreate = "none"
        driverClassName = "oracle.jdbc.OracleDriver"
        url = "jdbc:oracle:thin:@//XXXXXXX:1521/main-server"
    }
    lookup {
        dbCreate = "none"
        driverClassName = "oracle.jdbc.OracleDriver"
        url = "jdbc:oracle:thin:@//XXXXXXX:1521/lookup-server"
    }
}
我执行查询的服务类如下

class MyService {

    def dataSource

    def index() {

        // How can I define lookup datasource?
        def sql = new Sql(dataSource.lookup)

        def results = sql.rows("SELECT 1 from DUAL");

    }
}

你很接近。您需要按名称插入数据源,因此您实际上需要的不是
Datasource
,而是
lookup
。在本例中,我将您的
lookup
数据源重命名为
dataSource\u lookup
,因此更清晰

development {
    dataSource {
        dbCreate = "none"
        driverClassName = "oracle.jdbc.OracleDriver"
        url = "jdbc:oracle:thin:@//XXXXXXX:1521/main-server"
    }
    dataSource_lookup {
        dbCreate = "none"
        driverClassName = "oracle.jdbc.OracleDriver"
        url = "jdbc:oracle:thin:@//XXXXXXX:1521/lookup-server"
    }
}


class MyService {

    def dataSource_lookup

    def index() {

        // How can I define lookup datasource?
        def sql = new Sql(dataSource_lookup)

        def results = sql.rows("SELECT 1 from DUAL");

    }
}

你很接近。您需要按名称插入数据源,因此您实际上需要的不是
Datasource
,而是
lookup
。在本例中,我将您的
lookup
数据源重命名为
dataSource\u lookup
,因此更清晰

development {
    dataSource {
        dbCreate = "none"
        driverClassName = "oracle.jdbc.OracleDriver"
        url = "jdbc:oracle:thin:@//XXXXXXX:1521/main-server"
    }
    dataSource_lookup {
        dbCreate = "none"
        driverClassName = "oracle.jdbc.OracleDriver"
        url = "jdbc:oracle:thin:@//XXXXXXX:1521/lookup-server"
    }
}


class MyService {

    def dataSource_lookup

    def index() {

        // How can I define lookup datasource?
        def sql = new Sql(dataSource_lookup)

        def results = sql.rows("SELECT 1 from DUAL");

    }
}