【发布时间】:2011-08-24 02:20:17
【问题描述】:
我用谷歌搜索了很多,但没有发现工作问题...在我的网络应用程序中,我需要使用 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>
这也无济于事...有人对此有解决方案吗?任何帮助都会很好。
【问题讨论】:
标签: oracle hibernate jdbc blob