In meiner Anwendung möchte ich die Daten beibehalten und den Ruhezustand verwenden.
I habe Folgendes für die Zuordnung von XMLTYPE im Ruhezustand getan
- Definieren Sie den benutzerdefinierten Benutzertyp, der UserType implementiert
- Die Implementierung des benutzerdefinierten Benutzertyps basiert auf dem Blog-Link - http://community.jboss.org/wiki/Mapping ... toDocument
aber wir verwenden nicht den C3p0-Verbindungspool, sondern DBCP< /li>
XMLType.createXML(st.getConnection(),HibernateXMLType.domToString((Document) value));
wobei st das an die Methode übergebene vorbereitete Statement ist.
Das von st zurückgegebene Verbindungsobjekt. getConnection() ist vom Typ org.apache.commons.dbcp.PoolableConnection
Die Methode createXML erwartet jedoch nur ein Verbindungsobjekt dieses Typs oracle.jdbc.OracleConnection
Ich habe auch versucht, getInnermostDelegate abzurufen, aber auch das funktioniert nicht.
Die XMLTYPE-Erstellungsmethoden befinden sich in der enthaltenen JAR-Datei xdb.jar – wird es abhängig von den enthaltenen Versionen Änderungen geben?
Vielen Dank
+++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++
Das SQLConnection-Objekt mit dem folgenden Code erhalten-
SimpleNativeJdbcExtractor extractor = new SimpleNativeJdbcExtractor();
PoolableConnection poolableConnection = (PoolableConnection) extractor
.getNativeConnection(st.getConnection());
Connection sqlConnection = poolableConnection.getInnermostDelegate();
Jetzt lautet die Fehlermeldung java.sql.SQLException: Ungültiger Spaltentyp
Unten ist die überschriebene Methode
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");
}
}
Jetzt ohne Ahnung gegangen...