2012-07-02 1 views
0

Grails 서비스에서 어떻게 Hibernate 속성에 접근 할 수 있습니까?Grails 서비스에서 최대 절전 모드 속성에 액세스 하시겠습니까?

이 경우에는 유효한 데이터베이스를 만들기 위해 createSQLQuery을 사용해야하고 hibernate.default_schema 속성에 액세스해야합니다.

class MyService { 
    def sessionFactory 

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

UPDATE

Grails의 2.x에서 여러 데이터 소스와 특질 및 최대 절전 모드 속성의 설정이 있습니다. 추가 데이터 소스에 설정된 속성은 기본 데이터 소스에 적용됩니다.

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

그들은 다음의 GrailsApplication의 hibernate 설정에서 액세스 할 수 있습니다 :

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

답변

3

그들은에 저장됩니다

속성

대신 datasource 개체의 hibernate 객체로 설정해야합니다 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() 
    } 
} 
+0

나는 속성이 Grails 설정에서 사용 가능하다는 것을 깨닫지 못했다. 나는 세션과 데이터 소스에서 그것으로 되돌아 가려고 노력했다. 많은 감사합니다. – jamesallman

관련 문제