Anleitung zum Orakeln von XMLTYPE im RuhezustandJava

Java-Forum
Guest
 Anleitung zum Orakeln von XMLTYPE im Ruhezustand

Post by Guest »

Eine der Spalten ist vom Typ XMLTYPE in der Oracle-Datenbank.
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>
Ich habe ein Problem beim Erstellen des XMLType im benutzerdefinierten Benutzertyp

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...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post