2012-02-13 76 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