0

Grails サービスから Hibernate プロパティにアクセスするにはどうすればよいですか?

この例ではcreateSQLQuery、レガシー データベースを使用する必要がありhibernate.default_schema、有効な SQL ステートメントを作成するためにプロパティにアクセスする必要があります。

class MyService {
    def sessionFactory

    def getRows() {
        def session = sessionFactory.currentSession
        session.createSQLQuery("SELECT * FROM schema.table").list()
    }
}

アップデート

Grails 2.x の複数のデータソースと Hibernate プロパティの設定には癖があります。追加のデータソースに設定されたプロパティは、デフォルトのデータソースに適用されます。

hibernateプロパティは、オブジェクトではなくオブジェクトで設定する必要がありdatasourceます。

datasource_ds2 {
    . . .
}
hibernate_ds2 {
    default_schema = "schema"
}

hibernateこれらは、grailsApplicationの構成からアクセスできます。

def grailsApplication
assert grailsApplication.config.hibernate_ds2.default_schema == "schema"
4

1 に答える 1

3

それらは Config オブジェクトに保存されます。例:

class MyService {

    def grailsApplication
    def sessionFactory

    def getRows() {

        def defaultSchema = grailsApplication.config.hibernate.default_schema
        def session = sessionFactory.currentSession
        session.createSQLQuery("SELECT * FROM ${defaultSchema}.table").list()
    }
}
于 2012-07-02T06:46:33.090 に答える