2012-03-11 26 views
1

我需要存儲一個非常無限的String(文檔),我將無法確定它的長度。我知道有CLOB,但我無法在JDO中找到它的實現,只是JPA。JDO @ DataNucleus中的無限字符串? (H2 DB)

我試過:

@Column(jdbcType="CLOB") 
private String contents = ""; 

但是當我運行模式驗證的工具,我得到:

例外SchemaTool的操作過程中拋出。請參閱日誌瞭解詳細信息。以下內容可能有所幫助:列SCENE.CONTENTS的不兼容數據類型:VARCHAR(數據存儲),但期望類型爲CLOB(元數據)。請檢查數據存儲中的類型和MetaData中指定的類型是否一致。

我一定會缺少一些基本的東西...

回答

2

您在JDO中找不到CLOB? JDO允許你定義「jdbc-type」,所以你有全部的類型。在JPA中,你有一個非常有限的集合

+0

是的,我試圖將JDBC類型設置爲CLOB,但它沒有任何作用,它仍然表示String太長(超過256個字符),什麼是正確的方法將String定義爲具有JDO註釋的CLOB? – Paul 2012-03-12 07:25:42

+0

jdbc-type =「clob」很明顯,按照JDO規範和文檔。但是如果你的表已經定義了VARCHAR(256),那麼它就沒有意義了。你沒有提供那個細節 – DataNucleus 2012-03-12 07:38:29

+0

好吧,我沒有定義它,它都是自動datanucleus的東西。 我已經使用過: @Column(jdbcType =「CLOB」) String contents =「」; 我在更改後正在刪除並創建模式。 – Paul 2012-03-12 11:10:36

相關問題