Grails 2.4.2 java.sql.Connection объект

Я обновил свой проект с Grails 2.2.3 до 2.4.2, используя hibernate 4. (4.3.5.4)

В этом проекте есть служба, которая использует пространственные запросы и процессы Oracle для генерации результатов.

Для преобразования объекта Oracle JGeometry в Oracle STRUCT необходим объект подключения к базе данных: STRUCT obj = JGeometry(geom, connection)

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

1 ответ

Решение

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

    /**
 * 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

внедрить bean-компонент sessionFactory.

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

Другие вопросы по тегам