如何在 java 1.8 中从 org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8 转换为 oracle.jdbc.OracleConnection。目前我正在这样使用并得到以下异常。
java.lang.ClassCastException:org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8 无法转换为 oracle.jdbc.OracleConnection
session = getHibernateSession();
conn = getConnection(session);
conn.setAutoCommit(false);
oracleConnection = conn.unwrap(OracleConnection.class);
Run Code Online (Sandbox Code Playgroud)
非常不幸的是,您不能使用Connection.unwrap()on WrappedConnectionJDK8。你必须打电话WrappedConnection.getUnderlyingConnection()来代替。另请参阅这个问题。在你的情况下:
OracleConnection oracleConnection = (OracleConnection)
((WrappedConnectionJDK8) conn).getUnderlyingConnection();
Run Code Online (Sandbox Code Playgroud)
或者,如果您无法访问该WrappedConnectionJDK8类型,只需使用反射:
OracleConnection oracleConnection = (OracleConnection)
conn.getClass().getMethod("getUnderlyingConnection").invoke(conn);
Run Code Online (Sandbox Code Playgroud)
我知道...