2012-02-13 73 views
1

我使用的是SQL Server 2008和下面的罐子都在我的類路徑:SQL Server 2008中,JDO(DataNucleus將3.0.7)和列的最大長度

datanucleus-api-jdo-3.0.6.jar 
datanucleus-core-3.0.8.jar 
datanucleus-enhancer-3.0.1.jar 
datanucleus-rdbms-3.0.7.jar 

我想開始說,一切正常。

我堅持成功一個對象,該對象具有應該包含ASCII文件內容的字符串字段。

當文件較大時我得到這個錯誤,而堅持:

javax.jdo.JDOFatalUserException:嘗試儲值「| 0 | 1.00 | 1.00 | 1.00 || EUR | 8010312090196 || ADVBANMMGM8 | BA MASTER MGM 8 | 0 | 1.00 | 1.00 | 1.00 || EUR 「在」FILECONTENT「欄中,最大長度爲256.請更正您的數據!

爲了清楚起見,我在引號之間修剪了文件內容。

這是我package.jdo文件:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jdo PUBLIC 
    "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN" 
    "http://java.sun.com/dtd/jdo_2_0.dtd"> 
<jdo> 
    <package name="com.mypackage.mycompany.model"> 

      <class name="FeedEvent" table="MY_UPLOADS" identity-type="application" > 
        <field name="id" persistence-modifier="persistent" primary- key="true" value-strategy="identity" /> 
        <field name="fileName" persistence-modifier="persistent" /> 
        <field name="fileSize" persistence-modifier="persistent" /> 
        <field name="fileContent" persistence-modifier="persistent" /> 
        <field name="uploaded" persistence-modifier="persistent" /> 
        <field name="uploadDate" persistence-modifier="persistent" /> 
        <field name="uploadFailureReason" persistence-modifier="persistent" /> 
        <field name="eventDate" persistence-modifier="persistent" /> 
      </class> 


    </package> 
</jdo> 

從Windows代碼一切工作正常,我們可以將文件作爲大存儲爲1MB,所以我想是沒有關係的DB型。

這是我的POJO:

public class FeedEvent { 

private Long id; 
private String fileName; 
private long fileSize; 
private String fileContent; 
private boolean uploaded; 
private Date uploadDate; 
private String uploadFailureReason; 
private Date eventDate; 

public FeedEvent() { 
} 

.......getters and setters here.............. 

} 

fileContent是一個當與ASCII文件加載內容,讓問題。 我試圖將列類型切換爲nvarchar(max),text,varchar(max),但沒有運氣。

任何建議將不勝感激。

謝謝你的時間。

回答

0

我寧願不把事情留在「運氣」上。 JDO規範有明確定義列長的方法;指的是任何JDO書籍,或DataNucleus的文檔都會告訴你足夠清晰的XML元素<column>,並且還會告訴你persistence-modifier="persistent"對於絕大多數java字段類型不是必需的

+0

現在可以將長度屬性添加到列標記內fileContent字段。 //謝謝 – 2012-02-14 09:57:08