Du kan få tillgång till den unproxied Connection in Work genom att ringa:
public void execute(Connection connection) throws SQLException {
Connection unproxiedConnection = connection.unwrap( Connection.class );
...
}
Det formuläret utnyttjar JDBC 4 unwrap-metoden, vi delegerar helt enkelt det till den underliggande anslutningen. Eller om du specifikt behöver en OracleConnection:
public void execute(Connection connection) throws SQLException {
OracleConnection oracleConnection = connection.unwrap( OracleConnection.class );
...
}
Du kan också använda:
public void execute(Connection connection) throws SQLException {
Connection unproxiedConnection = ( (JdbcWrapper<Connection>) connection ).getWrappedObject();
...
}
Jag har gått fram och tillbaka när det gäller att överväga att låta Verket betyda att det vill ha en anslutning utan proxy, men med tanke på tillgängligheten av Connection#unwrap är jag inte så säker på att det finns en verklig fördel.