Как привести из org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8 к oracle.jdbc.OracleConnection в Java 1.8 - PullRequest
0 голосов
/ 12 февраля 2019

Как привести из 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);

1 Ответ

0 голосов
/ 12 февраля 2019

Вы не можете использовать Connection.unwrap() на WrappedConnectionJDK8, к сожалению.Вы должны позвонить WrappedConnection.getUnderlyingConnection() вместо.Смотри также этот вопрос .В вашем случае:

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

В качестве альтернативы, если вы не можете получить доступ к типу WrappedConnectionJDK8, просто используйте отражение:

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

Я знаю ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...