Как получить пользовательскую ссылку на источник данных в Grails 2.4.X? - PullRequest
0 голосов
/ 06 мая 2019

Мне нужно запросить SQL из источника данных пользовательского поиска в Grails 2.4.5.Я не могу использовать проекции, потому что SQL слишком сложен.

Документация Документы Grails не дают никаких объяснений по этому случаю.

Я не могу создавать представления или подобные структурыв этой поисковой базе данных.

Мой 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");

    }
}

1 Ответ

2 голосов
/ 06 мая 2019

Вы очень близки.Вам нужно ввести источник данных по имени, поэтому вместо dataSource вы на самом деле хотите lookup.В этом примере я переименовал ваш lookup источник данных в dataSource_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");

    }
}
...