- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我当前的项目中,我将 Spring Data JPA 与 Hibernate 一起使用,但认为这是一个更普遍的问题,也应该涵盖“普通”JPA。
我不确定我应该如何处理OptimisticLockException
使用 @Version
时.
由于我的应用程序的工作方式,一些关系有 CascadeType.PERSIST
和 CascadeType.REFRESH
, 其他人也有 CascadeType.MERGE
.
OptimisticLockException
CascadeType.MERGE
。因为那么有问题的实体可能是需要由另一个服务处理的实体(我每个实体类都有一个服务)。
getEntity()
但是如何将其转换为正确的类型,尤其是在使用 CascadeType.MERGE 的情况下?实体可以是多种类型,因此使用
instanceof
的 if/switch想到了,但这看起来像 hell 一样丑陋。
最佳答案
乐观锁定的全部意义在于能够告诉最终用户:嘿,您试图保存这条重要信息,但其他人在背后保存了它,所以您最好刷新信息,决定是否仍然想要保存它并可能输入一些新值,然后重试。
就像 SVN 一样,如果你尝试提交一个文件而其他人之前提交了一个新版本,SVN 会强制你更新你的工作副本并解决潜在的冲突。
所以我会做和 JPA 一样的事情:它让调用者通过抛出异常来决定做什么。此异常应在表示层中处理。
关于JPA:OptimisticLockException 和级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083467/
在我当前的项目中,我将 Spring Data JPA 与 Hibernate 一起使用,但认为这是一个更普遍的问题,也应该涵盖“普通”JPA。 我不确定我应该如何处理OptimisticLockEx
在选择查询中出现 OptimisticLockException javax.persistence.OptimisticLockException at org.hibernate.ejb.Abst
无法捕获乐观锁异常。 引发 OptimisticLockException 的一种方法是使用 em.flush() try{ //some enitity em.flush() } c
我有多个线程读取一个表。每个线程都想从表中读取一个值,然后将状态从 used = 'N' 更改为 used = 'Y'; Value = `Select min(myColumn) where use
我正在使用 Spring 和 Hibernate。我正在像这样运行 jUnit 测试: String number = invoiceNumberService.nextInvoiceNumber()
当我的应用程序中出现乐观并发问题时,我的应用程序中会抛出 StaleObjectStateException 而不是 OptimisticLockException (正如我所读到的,我应该期待这个)
我有以下代码 (OLE = OptimisticLockException) ... public void outer() { try { middle() } catch (OLE
假设我有一个带有版本字段(javax.persistence.Version 注释)的实体 bean AccountBean。在交易过程中,我的应用程序修改了这个实体并对其他实体执行数据库操作(插入和
我尝试在 Play 中使用 Ebean 更新数据库中的一行!框架程序。 这是我要更新的实体的类。 Transaction.java @Entity @Table(name = "transaction
我是 JPA 的新手,如果不清楚,请原谅我。 基本上我想通过使用乐观锁来防止并发修改。我已将 @Version 属性添加到我的实体类中。 我需要知道这个处理 OptimisticLockExcepti
这是我的代码: EntityManager em = JPAUtil.createEntityManager(); try { EntityTransaction tx = em.ge
我正在使用 JPA toplink-essential,构建 REST 网络应用程序。 我有一个 servlet,它可以找到一个实体并将其删除。 在代码下方,我认为我可以在 servlet 级别捕获乐
我们正在开发一个旨在每秒处理多个请求的网站。- 我们当前的环境是 JavaEE、JBoss 4.2.3、Struts2 for MVC、JPA,Hibernate 作为 ORM,Postgres 作为
我有一个使用 Ebean 的 Play 2.1.3 Java 应用程序。我在下面收到 OptimisticLockException。 [OptimisticLockException: Data h
所以,我在做一个简单的 Spring MVC + JPA (hibernate) 项目,其中有用户可以发布帖子并在他们的 friend 帖子上发表评论(有点像一个小型社交网络)。我对使用 JPA Hi
我在这里读了几个关于 JPA 的 OptimisticLockException 的问题,在无状态 session bean 中使用。它被抛出,但显然不在我预期的位置。 这是我希望得到异常的代码:
在 (REST) 网络服务中处理 OLE 的正确模式是什么?这就是我现在正在做的,例如, protected void doDelete(HttpServletRequest request, Htt
模型结构: @MappedSuperclass public class BaseModel implements Serializable, Comparable { private sta
我的问题 - 进程尝试更改已经更改并具有最新版本 ID 的实体。当我在 UnitOfWork 的 commit() 代码中执行 flush() 时,会出现 OptimisticLockExceptio
在 Web 应用程序中,我使用 Spring 4.3.9 和 Hibernate 5.2.10 作为 JPA 提供程序。 在一个 bean 中,我有以下类和方法: @Repository
我是一名优秀的程序员,十分优秀!