Я много гуглил и не нашел рабочей проблемы ... В моем веб-приложении мне нужно загружать большие файлы, используя ajax. Я использую плагин ajaxfileupload для него. В моем классе FormBean я сопоставил файл с InputStream:
private InputStream fileData;
и
@FormParam("file")
@PartType("application/octet-stream")
@JsonIgnore
public void setFileData(InputStream fileData) {
this.fileData = fileData;
}
Работает нормально. Я могу сохранить этот поток в файл, и у меня нет проблем с размером кучи Java. Сейчас я пытаюсь сохранить его в базе данных с помощью Hibernate. Как это:
repFile.setFileData(session.getLobHelper().createBlob(file.getFileData(), 1024L));
и при сохранении объекта repFile у меня есть ORA-01461 , который может связывать значение LONG только для вставки в столбец LONG.
Он работает с Oracle 10. Но он падает с Oracle 11.2
Я пытался добавить lobHandler в мою конфигурацию - не помогло
<property name="lobHandler">
<bean class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<bean class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"/>
</property>
</bean>
</property>
И установить размер партии в 0 и разрешить пар
<prop key="hibernate.jdbc.use_streams_for_binary">true</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
Это тоже не помогло ... у кого-нибудь есть решение для этого? Любая помощь будет хорошей.