我通过将 GET 中的版本号传回给 PUT 调用,为我的 REST 资源实现了乐观锁定,这些资源具有与数据库表的一对一映射。如果在我执行 GET 和 PUT 之间数据库中的版本号发生了变化,那么就发生了乐观锁异常。很简单的设计。
现在,我如何对映射到多个数据库表的复合 REST 资源执行相同的操作?我不想传回多个版本字段(一个用于与复合资源相关的每个数据表)。复合资源的一个简单示例是 /FooBar,其中 /Foo 和 /Bar 是非复合资源。
我基本上是在寻找 Fowler 粗粒度锁定模式的 REST 实现示例:http ://martinfowler.com/eaaCatalog/coarseGrainedLock.html