Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ausführen einer nativen Abfrage mit Hibernate 4.1

Sie können Zugriff auf die Verbindung ohne Proxy in Work erhalten, indem Sie anrufen:

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

Dieses Formular nutzt die Unwrap-Methode von JDBC 4, wir delegieren das einfach an die zugrunde liegende Verbindung. Oder wenn Sie speziell eine OracleConnection benötigen:

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

Sie könnten auch verwenden:

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

Ich bin hin und her gegangen, um darüber nachzudenken, dem Werk zu erlauben, anzuzeigen, dass es eine Verbindung ohne Proxy wünscht, aber angesichts der Verfügbarkeit von Connection#unwrap bin ich mir nicht so sicher, ob es einen wirklichen Vorteil gibt.