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 и хорошо работает в моем проекте.