sql >> Base de Datos >  >> RDS >> Oracle

Ejecutando consulta nativa con Hibernate 4.1

Puede obtener acceso a la conexión sin proxy en el trabajo llamando a:

public void execute(Connection connection) throws SQLException {
    Connection unproxiedConnection = connection.unwrap( Connection.class );
    ...
}

Ese formulario aprovecha el método de desempaquetado de JDBC 4, simplemente lo delegamos a la conexión subyacente. O si necesita específicamente una OracleConnection:

public void execute(Connection connection) throws SQLException {
    OracleConnection oracleConnection = connection.unwrap( OracleConnection.class );
    ...
}

También podrías usar:

public void execute(Connection connection) throws SQLException {
    Connection unproxiedConnection = ( (JdbcWrapper<Connection>) connection ).getWrappedObject();
    ...
}

He ido y venido en términos de contemplar permitir que el Trabajo signifique que quiere una Conexión sin proxy, pero dada la disponibilidad de Connection#unwrap, no estoy tan seguro de que haya un beneficio real.