如何在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);
答案 0 :(得分:3)
很遗憾,您不能在Connection.unwrap()
上使用WrappedConnectionJDK8
。您必须改为致电WrappedConnection.getUnderlyingConnection()
。另请参见this question。就您而言:
OracleConnection oracleConnection = (OracleConnection)
((WrappedConnectionJDK8) conn).getUnderlyingConnection();
或者,如果您无法访问WrappedConnectionJDK8
类型,则只需使用反射:
OracleConnection oracleConnection = (OracleConnection)
conn.getClass().getMethod("getUnderlyingConnection").invoke(conn);
我知道...