Sql server 2008 SQL Server 2008、JDO(Datanucleus 3.0.7)和列的最大长度
我正在使用SQL Server 2008,我的类路径上有以下JAR:Sql server 2008 SQL Server 2008、JDO(Datanucleus 3.0.7)和列的最大长度,sql-server-2008,jdo,datanucleus,Sql Server 2008,Jdo,Datanucleus,我正在使用SQL Server 2008,我的类路径上有以下JAR: 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.JDOFatalUser
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 | EUR”
|8010312090196 | advbammgm8 | BA硕士米高梅8 | 0 | 1.00 | 1.00 |欧元
在“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>
字段fileContent
是加载ASCII文件内容时出现问题的字段。
我试图将列类型切换到nvarchar(max)
,text
,varchar(max)
,但没有成功
如有任何建议,将不胜感激
谢谢你的时间。我不想把事情留给“运气”。JDO规范有定义良好的设置列长度的方法;参考任何JDO书籍或DataNucleus的文档都可以清楚地告诉您XML元素
,并且还可以告诉您,绝大多数java字段类型都不需要persistence modifier=“persistent”
,现在可以在fileContent字段中为列标记添加长度属性//谢谢
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..............
}