2014-08-29 3 views
0

Я модернизировал свой проект с Grails 2.2.3 2.4.2 с использованием Hibernate 4. (4.3.5.4)Grails 2.4.2 java.sql.Connection объект

Существует сервис в этом проекте, который использует Oracle пространственные запросы и процессы для получения результатов.

Преобразование объекта Oracle JGeometry к Oracle STRUCT требует объект подключения к базе работы: STRUCT OBJ = JGeometry (геом, соединение)

Как я могу получить объект java.sql.Connection из Hibernate 4?

ответ

0

Для тех, кто заинтересован, я решил эту проблему, вызвав следующие внутри службы:

/** 
* createConnection creates a database connection using the java.sql.DriverManager 
* The parameters used to make the connection are taken from the current session 
* @return java.sql.Connection object 
*/ 
Connection createConnection(){ 

    oracle.jdbc.OracleConnection cnx = null 
    try { 
     sessionFactory?.currentSession?.doWork new Work(){ 
      void execute(Connection c){ 
       //convert the com.sun.proxy.$Proxy<nn> connection to Oracle 
       cnx = c.unwrap(oracle.jdbc.OracleConnection.class) 
      } 
     } 

     return cnx 

    } 
    catch (SQLException sqle){ 
     RIMS.ConnectionService.log.error "Error in createConnection: ${sqle.message}" 
    } 
    return null 
} 

Я также добавил:

import org.hibernate.jdbc.Work 

и

def sessionFactory 

впрыснуть sessionFactory bean.

Этот код содержится в плагине без файла dataSource.groovy и хорошо работает в моем проекте.

Смежные вопросы