我使用的Ejb3和JPA創建的Clob(基於目前的Hibernate和Oracle 10g)如何在JPA在實施不可知論的方法
我有一個包含CLOB實體
@Entity
@Table(name = "My_TAB")
public class ExampleEntity implements java.io.Serializable {
private Clob someText;
public void setSomeText(Clob someText) {
this.someText= someText;
}
@Column(name = "COLUMN_NAME")
public Clob getSomeText() {
return this.someText;
}
然後我想保存這種類型的實體。
目前我做這完全
ExampleEntity exampleEntity = new ExampleEntity();
exampleEntity.setSomeText(Hibernate.createClob(aStringValue));
someOtherDao.save(exampleEntity);
但是這關係我的代碼休眠工作以下!我特別避免使用Hibernate擴展,只使用JPA註釋。代碼工作,因爲確實Hibernate是我目前的實現。
是否有某種JPA API允許我以通用方式創建clob?所以如果以後我決定切換到Toplink/EclipseLink或其他東西,我不會改變一件事情?
您也可能希望'@Basic(fetch = LAZY)'用於延遲加載。 – axtavt 2010-04-14 12:16:05
@Basic(fetch = LAZY)不會在hibernate屬性中工作。至少不是沒有instumentation。 – yannisf 2010-04-14 12:30:47
它不適用於「Oracle 11g R2」 - 我的列定義是@Column(columnDefinition =「CLOB NOT NULL」) @Lob private String notes;但Oracle始終將該列創建爲「CLOB(4000)」。我錯過了什麼嗎? 我正在使用「Hibernate 3.2.0-Final」版本(使用JBoss 6.0-Final)。 – javauser71 2011-03-30 21:21:48