从Grails服务访问hibernate属性?
如何从Grails服务访问Hibernate属性 在本例中,我必须对遗留数据库使用从Grails服务访问hibernate属性?,hibernate,grails,Hibernate,Grails,如何从Grails服务访问Hibernate属性 在本例中,我必须对遗留数据库使用createSQLQuery,并且需要访问hibernate.default\u schema属性才能生成有效的SQL语句 class MyService { def sessionFactory def getRows() { def session = sessionFactory.currentSession session.createSQLQuery("S
createSQLQuery
,并且需要访问hibernate.default\u schema
属性才能生成有效的SQL语句
class MyService {
def sessionFactory
def getRows() {
def session = sessionFactory.currentSession
session.createSQLQuery("SELECT * FROM schema.table").list()
}
}
更新 Grails2.x多数据源和Hibernate属性的设置有一个怪癖。附加数据源中设置的属性将应用于默认数据源 必须在
hibernate
对象而不是datasource
对象中设置属性:
datasource_ds2 {
. . .
}
hibernate_ds2 {
default_schema = "schema"
}
然后可以从grailsApplication中的hibernate
config访问它们:
def grailsApplication
assert grailsApplication.config.hibernate_ds2.default_schema == "schema"
它们存储在配置对象中,例如:
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()
}
}
它们存储在配置对象中,例如:
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()
}
}
我没有意识到这些属性在Grails配置中是可用的。我一直试图从会话和数据源返回到它。非常感谢。我不知道Grails配置中有这些属性。我一直试图从会话和数据源返回到它。非常感谢。