В моем приложении я хочу сохранить данные и использовать Hibernate.
Я сделал следующее для сопоставления XMLTYPE в спящем режиме.
- Определите пользовательский тип, реализующий UserType
- Реализация пользовательского типа основана на ссылке на блог - http://community.jboss.org/wiki/Mapping ... toDocument
- но мы не используем пул соединений C3p0, а вместо этого мы используем DBCP
Код: Выделить всё
XMLType.createXML(st.getConnection(),HibernateXMLType.domToString((Document) value));
Объект соединения, возвращаемый функцией st.getConnection(), имеет тип org.apache.commons.dbcp.PoolableConnection
Но метод createXML ожидает объект соединения только типа oracle.jdbc.OracleConnection
Я также пытался получить getInnermostDelegate, но это тоже не работает.
Методы создания XMLTYPE находятся во включенном jar xdb.jar – будут ли какие-либо изменения в зависимости от включенных версий?
Спасибо
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Получил объект SQLConnection, используя приведенный ниже код -
Код: Выделить всё
SimpleNativeJdbcExtractor extractor = new SimpleNativeJdbcExtractor();
PoolableConnection poolableConnection = (PoolableConnection) extractor
.getNativeConnection(st.getConnection());
Connection sqlConnection = poolableConnection.getInnermostDelegate();
Ниже приведен переопределенный метод
Код: Выделить всё
public void nullSafeSet(PreparedStatement st, Object value, int index)
throws HibernateException, SQLException {
SimpleNativeJdbcExtractor extractor = new SimpleNativeJdbcExtractor();
PoolableConnection poolableConnection = (PoolableConnection) extractor
.getNativeConnection(st.getConnection());
Connection sqlConnection = poolableConnection.getInnermostDelegate();
try {
XMLType xmlType = null;
if (value != null) {
xmlType.createXML(sqlConnection, HibernateXMLType
.domToString((Document) value));
}
st.setObject(index, xmlType);
} catch (Exception e) {
e.printStackTrace();
throw new SQLException(
"Could not convert Document to String for storage");
}
}
Подробнее здесь: https://stackoverflow.com/questions/381 ... -hibernate
Мобильная версия