java - 选择查询中的 OptimisticLockException

标签 java hibernate jakarta-ee jpa

在选择查询中出现 OptimisticLockException

javax.persistence.OptimisticLockException at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1415) [hibernate3.jar:3.6.10.Final] at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1336) [hibernate3.jar:3.6.10.Final] at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1317) [hibernate3.jar:3.6.10.Final] at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255) [hibernate3.jar:3.6.10.Final]

查询是一个简单的选择查询,涉及多个实体和where子句

select distinct a.id ,b.type ... from table1 a ,table2 b ,table3 c...where b.id=a and c.id in...

众所周知,当我们尝试更新一个脏实体时,会发生 OptimisticLockException,但是 select 查询怎么会导致这个异常。有没有可能,或者这是一个错误?

最佳答案

很可能选择查询不是异常的来源,而只是触发器。 通常,Hibernate 会在相关选择之前触发刷新,因此,如果您进行的更新导致 OptimisticLockException,则刷新更新时将引发异常。

在执行选择查询之前尝试手动刷新,您应该会看到异常(不过您可能必须将刷新模式设置为手动)。

关于java - 选择查询中的 OptimisticLockException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196189/

相关文章:

java - 如何以可移植且针对每个应用程序的方式在 JBoss 上自动创建 JMS 主题/队列?

java - Intellij IDEA 2019.3、JDK 11.0.3 : Cannot resolve symbol 'java' but still compile 中的 Maven java 项目

java - 在 android 中膨胀 fragment 时出错

hibernate - 带有分页的 Spring JPA 存储库中的自定义查询

java - 运行 Java Web 应用程序的最低要求

jakarta-ee - Netbeans 7.3 firstcup 示例在 dukesAge 服务上获取 404

java - 使用 CXF 而不是 Axis for Restfull SOAP 调用会将客户端与 wsdl 中的更改分离吗?

java - 如何使用 JSch 运行并显示 shell 命令 ssh 的结果?

JavaFX 通过透明节点将鼠标事件传递给子节点

带有 EmbeddedId 的 hibernate 条件