我有下面的类在Spring Boot 1.5.x中很好用
public ConnectionFactory connectionFactory() {
org.springframework.data.jdbc.config.oracle.AqJmsFactoryBeanFactory f=new AqJmsFactoryBeanFactory();
f.setDataSource(dataSource);
f.setCoordinateWithDataSourceTransactions(true);
f.setNativeJdbcExtractor(new org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor());
f.setConnectionFactoryType(ConnectionFactoryType.QUEUE_CONNECTION);
try {
return f.getObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
我现在已经升级到不存在NativeJdbcExtractor的2.0.4版本。有人可以帮我如何重新配置上面的内容以获取connectionFactory。
答案 0 :(得分:0)
整个nativejdbc层次结构已不存在,因此不再可用,因此不升级或找出不需要它的方法(jdbc 4可以使用unwrap来获取实际的基础连接)。
要获取实际的基础连接,请在Connection上使用一个拆包方法。因此,connection.unwrap(OracleConnection.class)
之类的东西应该可以为您提供实际的基础连接。但是,这可能需要对aq-jms-connection-factory进行额外的升级,但我不确定它是否支持Spring 5.0。
答案 1 :(得分:0)
我使用了类似的方法可以为您提供帮助:
public OracleConnection getOracleConnection(Connection connection) throws SQLException {
OracleConnection oconn = null;
try {
if (connection.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
oconn = (OracleConnection) connection.unwrap(oracle.jdbc.OracleConnection.class)._getPC();
}
} catch (SQLException e) {
throw e;
}
return oconn;
}