我们正在开发一个RESTful应用程序,数据层将由Hibernate处理,但我们不确定如何处理实体的更新。 我们计划执行以下操作: 1)客户端通过id请求实体 2)Hibernate加载实体,将请求的字段(始终包括版本号)复制到DTO中,然后将其转换为JSON并发送给客户端 3)客户端管理...
如何在一个不能保存某个版本实体实例的系统中实现乐观锁定(乐观并发控制)?这实际上是一个非常普遍的情况,但几乎所有的示例都是基于会在请求之间保持已加载的实体实例(在http会话中)的应用程序。 如何以尽可能少API污染的方式实现乐观锁定? 约束条件 该系统基于领域驱动设计原则开发。 客户端/服...
我认为我已经清除了所有问题,但是我不确定我是否完全理解OL。一般来说,假设你和我在一个团队中来保持foo的最新状态。我在一个房间里,决定节省时间,自己更新foo。一分钟后,你也有了同样的想法,并登录到编辑页面以更新它。如果我先完成会发生什么?如果你先完成会发生什么?在配置失败的情况下,它如何区...
这里有一个实体: @Entity class A { ... @Version int version; } 乐观方式实现A实例更新: @Transactional(rollbackFor = {StaleStateException.class}) @Ret...
使用实体的版本属性进行乐观锁定非常好用且易于实现: <version property="VERSION" type="int" column="EX_VERSION" /> 实体具有以下类型的属性: private int VERSION; public int getV...
我知道什么是乐观锁和悲观锁,但是在编写Java代码时,应该如何实现呢?假设我正在使用Java的Oracle,是否有JDBC中的方法可以帮助我实现这个过程?我应该如何进行配置?非常感谢您提供任何指导。
我对在JPA中使用@Version注释的字段应该使用哪种类型进行乐观锁定存在疑问。 API javadoc (http://docs.oracle.com/javaee/7/api/javax/persistence/Version.html) 表示: “以下类型支持版本属性:int,In...
假设我想要实现一种乐观锁定策略,并使用ETags指示最新的资源状态。这意味着当客户端进行更新时,客户端将使用If-Match标头进行PUT请求。 根据HTTP规范,如果提供给If-Match标头的ETag与资源当前状态不匹配,则服务器必须返回412 Precondition failed。 ...
我已经为我的REST资源实现了乐观锁,这些资源与数据库表具有一对一的映射关系,通过将在GET请求中返回的版本号传回到PUT请求中。如果在我执行GET和PUT之间数据库中的版本号发生更改,则会发生乐观锁异常。这是一个相当简单的设计。 现在,如何为映射到多个数据库表的复合REST资源实现相同的操...
环境: 我有一个名为 User 的实体:@Entity public class User implements Serializable { private static final long serialVersionUID = 1L; @Id @Generat...