2016-11-27 43 views
0

實體java代碼:映射的Oracle XMLTYPE使用OpenJPA 2.2.2

@Column(name="XMLCOL", columnDefinition="XMLTYPE") 
    private String xmlcol; 

public String getXmlcol() { 
    return xmlcol; 
} 

public void setXmlcol(String xmlcol) { 
    this.xmlcol = xmlcol; 
} 

表列數據類型:

XMLCOL PUBLIC.XMLTYPE STORAGE BINAR 

每次我得到的XML數據爲NULL。無法獲取數據。

嘗試@ColumnTransformer(read = "to_clob(columnName)", write = "?")但不工作。也越來越例外

Exception in thread "main" <openjpa-2.2.2-r422266:1468616 fatal user error> org.apache.openjpa.persistence.ArgumentException: "com.javawebtutor.Supplier.xmlcol" declares a column that is not compatible with the expected type "varchar". Column details: 
Full Name: Supplier.XMLCOL 
Type: unknown(2009) 
Size: 2000 
Default: null 
Not Null: false 

添加下面的persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="jpa"> 
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
     <class>com.javawebtutor.Supplier</class> 
     <properties> 
      <property name="openjpa.jdbc.SchemaFactory" value="native"/> 
      <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe"/> 
      <property name="javax.persistence.jdbc.user" value="***"/> 
      <property name="javax.persistence.jdbc.password" value="***"/> 
      <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> 
      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/> 
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

在此先感謝。

回答

0

更改ojdbc6.jar後問題得到解決..使用11g ojdbc6.jar而不是12c