Hibernate:在 Hibernate 5.4.x 版本中 运行 这个 SQL 查询 "alter session enable parallel dml" 出错

Hibernate: getting error to run this SQL query "alter session enable parallel dml" in Hibernate 5.4.x version

我已经在我的应用程序中将 Hibernate 4.x 版本升级到 Hibernate 5.4.x 版本。

我在 运行 低于 SQL 查询时遇到以下错误:

javax.persistence.TransactionRequiredException: Executing an update/delete query at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:413) at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1668)

SQL查询:

hibernateSession.createSQLQuery("alter session enable parallel dml").executeUpdate();

在上述 dml 查询失败后,并行 运行 删除查询也失败。

我尝试在方法级别和 class 级别使用 @Transactional 注释(导入 org.springframework.transaction.annotation.Transactional;),但这并没有解决我的问题。

如有任何解决此错误的建议,我们将不胜感激。

看起来您的事务管理器集成工作不正常,因为 Hibernate 无法加入事务。不确定您的 Spring 配置如何,但一定有问题。我猜你也更新了 Spring?也许您正在使用现在不受支持的配置?

我已在代码中添加了开始事务以解决上述错误。

Transaction trans = session.beginTransaction();

这个解决方案帮我解决了这个错误。

javax.persistence.TransactionRequiredException: Executing an update/delete query

但现在低于新错误

ERROR | ORA-12801: error signaled in parallel query server P00V ORA-12829: Deadlock - itls occupied by siblings at block 3591658 of file 175