Lea*_*dro 5 java oracle spring hibernate
我试图将 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)
Run Code Online (Sandbox Code Playgroud)
我认为问题出在我尝试获取 CLOB 时,因为它仍在保存。如果 CLOB 很小,它可以正常工作,但是当 CLOB 稍大一点时,它就会失败。
抱歉我的英语不好,谢谢
编辑:
注释是:
@Lob
@Column(nullable = false)
private String body;
Run Code Online (Sandbox Code Playgroud)
保存方法
emailRepository.save(email);
Run Code Online (Sandbox Code Playgroud)
小智 2
设置休眠属性
<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
Run Code Online (Sandbox Code Playgroud)
为我解决了问题。
将 SessionFactory 的 lobCreator 设置为 NonContextualLobCreator 可能是一个更好的解决方案(尚未尝试)。
但是我不确定是什么导致了这个错误。
| 归档时间: |
|
| 查看次数: |
3890 次 |
| 最近记录: |