【问题标题】:Grails 2.4.2 java.sql.Connection objectGrails 2.4.2 java.sql.Connection 对象
【发布时间】:2014-08-29 01:34:56
【问题描述】:

我已使用 hibernate 4 将我的项目从 Grails 2.2.3 升级到 2.4.2。(4.3.5.4)

此项目中有一项服务,使用 Oracle 空间查询和流程来生成结果。

将 Oracle JGeometry 对象转换为 Oracle STRUCT 需要数据库连接对象才能工作: STRUCT obj = JGeometry(geom, connection)

如何从 Hibernate 4 中获取 java.sql.Connection 对象?

【问题讨论】:

    标签: oracle connection hibernate-4.x grails-2.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
    

    注入 sessionFactory bean。

    此代码包含在没有 dataSource.groovy 文件的插件中,并且在我的项目中运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 2018-12-18
      • 2014-08-23
      • 2014-10-03
      相关资源
      最近更新 更多