2014-03-13 77 views
0

我的工作中,我有一個類具有這種屬性的一個項目:CLOB在ORACLE(JPA的,的EclipseLink)不節能

@Column(name="XMLDATA", columnDefinition="CLOB NOT NULL") @Lob @Basic(fetch=FetchType.LAZY) 
@Getter @Setter private String _xmlData; 

在數據庫中,列類型,它的屬性是CLOB 。

我在使用Oracle數據庫(11gR2),JPA和eclipselink作爲JPA Provider的weblogic 11gR1(10.3.5)上運行應用程序。我遇到的問題是每次我在數據庫上保存註冊表時,clob是唯一沒有保存的字段。

但是,如果我不把@lob註釋,那麼它工作正常。

在日誌中,我可以看到它首先使用「插入」語句插入除clob之外的所有數據,然後使用「select for update」語句插入clob數據,不知道這可能是問題的一部分。

謝謝。

回答

1

我搜索很多關於這個答案,直到我意識到,如果你正在使用的EclipseLink,在至少2.5.2版本,你不必使用「@Column(name =」XMLDATA「,列定義=「CLOB NOT NULL」)@Lob @Basic(fetch = FetchType.LAZY)「。只需執行以下操作:

@Column(name = "XML_DATA") 
private String _xmlData; 

EclipseLink將知道如何處理CLOB列。

2

對於斑點(JPA +甲骨文),你必須指定的EclipseLink的下列屬性的正確管理:

屬性名=「eclipselink.target數據庫」 值=「org.eclipse.persistence.platform .database.oracle.Oracle11Platform」

看來,JPA有時無法檢測到Oracle數據庫平臺的正確版本

+0

謝謝,它的工作!你太棒了。 – JSP749