问题描述
如何在 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);
1楼
很遗憾,您不能在WrappedConnectionJDK8
上使用Connection.unwrap()
。
您必须改为调用 。
另请参阅。
在你的情况下:
OracleConnection oracleConnection = (OracleConnection)
((WrappedConnectionJDK8) conn).getUnderlyingConnection();
或者,如果您无法访问WrappedConnectionJDK8
类型,只需使用反射:
OracleConnection oracleConnection = (OracleConnection)
conn.getClass().getMethod("getUnderlyingConnection").invoke(conn);
我知道...