【发布时间】:2012-07-02 13:10:31
【问题描述】:
如何从 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"
}
然后可以从 grailsApplication 中的 hibernate 配置访问它们:
def grailsApplication
assert grailsApplication.config.hibernate_ds2.default_schema == "schema"
【问题讨论】: