Я использую SQL Server 2008, и в моем пути к классам находятся следующие банки:
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
Начну с того, что все работает нормально.
Я успешно сохраняю объект, который имеет поле String, которое должно содержать содержимое файла 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 все работает нормально, и мы можем хранить файлы размером до 1 МБ, поэтому я думаю, что это не связано с типом БД.
Это мой 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)
, но безуспешно.
Любое предложение будет принято с благодарностью.
Спасибо за ваше время.