如何从org.jboss.jca.adapters.jdbc.jdk8.WrappedConnect

2019-09-27 13:57发布

如何从org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8转换为oracle.jdbc.OracleConnection在Java 1.8。 目前我使用这样,得到了以下异常。

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);

Answer 1:

不能使用Connection.unwrap()WrappedConnectionJDK8 ,非常遗憾。 你必须调用WrappedConnection.getUnderlyingConnection()代替。 又见这个问题 。 你的情况:

OracleConnection oracleConnection = (OracleConnection) 
    ((WrappedConnectionJDK8) conn).getUnderlyingConnection();

另外,如果您不能访问WrappedConnectionJDK8类型,只是使用反射:

OracleConnection oracleConnection = (OracleConnection) 
    conn.getClass().getMethod("getUnderlyingConnection").invoke(conn);

我知道...



文章来源: How to cast from org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8 to oracle.jdbc.OracleConnection in java 1.8
标签: java oracle jdbc