gpt4 book ai didi

java - 从数据库 SQL oracle 保存和获取 blob 时出错

转载 作者:行者123 更新时间:2023-11-30 11:19:11 36 4
gpt4 key购买 nike

我正在尝试将 CLOB 保存到数据库中并恢复它,但我收到 SQLException:

Caused by: java.sql.SQLException: Lob read/write functions called while another read/write is in progress: getBytes()
at oracle.jdbc.driver.T4CConnection.getBytes(T4CConnection.java:2427)
at oracle.sql.BLOB.getBytes(BLOB.java:348)
at oracle.jdbc.driver.OracleBlobInputStream.needBytes(OracleBlobInputStream.java:181)

我认为问题出在我尝试获取 CLOB 时,因为它仍在保存。如果 CLOB 很小,它工作正常,但当 CLOB 稍大时,它会失败。

抱歉我的英语不好,谢谢

编辑:

注解是:

@Lob
@Column(nullable = false)
private String body;

保存方法

emailRepository.save(email); 

最佳答案

设置 hibernate 属性

<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>

帮我解决了这个问题。

将 SessionFactory 的 lobCreator 设置为 NonContextualLobCreator 可能是更好的解决方案(尚未尝试)。

但是我不确定是什么导致了这个错误。

关于java - 从数据库 SQL oracle 保存和获取 blob 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23370468/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com