Я использую 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
Я бы хотел начать с того, что все работает нормально.
Я успешно сохраняю объект с полем 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)
, но не повезло.
Любое предложение будет с благодарностью.
Спасибо за ваше время.