How should we handle the _NOWAIT variants for the three Pessimistic modes? The JPA2 style is to use the "javax.persistence.lock.timeout (time in milliseconds, with 0 meaning no wait).
Internally, we need Hibernate core to support the three pessimistic lock modes (read, write, force_increment) with a JPA2 style timeout option. Since, we need to support JPA2 timeout per requested lock, we might want to support _NOWAIT via the same mechanism as we use for timeout. On 10/30/2009 09:18 AM, Scott Marlow wrote: > For JPA2 support, I propose that Hibernate LockMode support the > following equivalents of JPA2 LockModeType locks: > > > LockMode.OPTIMISTIC (READ) > LockMode.OPTIMISTIC_FORCE_INCREMENT (WRITE) > LockMode.PESSIMISTIC_READ > LockMode.PESSIMISTIC_WRITE > LockMode.PESSIMISTIC_FORCE_INCREMENT > > Hibernate already supports NONE, so that doesn't need to be added. JPA2 > defaults to LockModeType NONE. > > JPA1 READ + WRITE will be supported respectively via LockMode.OPTIMISTIC > + LockMode.OPTIMISTIC_FORCE_INCREMENT. > > With this change, Hibernate (native (better term?)) applications would > be able to request JPA2 like locks. This also means that JPA2 > applications running with the Hibernate Entity Manager, will see similar > locking behavior as native applications. > > Pros: > > - Application developers will have a consistent set of locking options > in their JPA2 based applications and native Hibernate applications. > > - This helps the application developer to prepare their native Hibernate > application to migrate to JPA2. > > Cons: > > - This ties Hibernate core locking internals to the JPA2 specification. > As JPA continues to evolve, Hibernate core should follow in lockstep. > Although, that is not a hard requirement. > > - An alternative would be introducing low level locking primitives that > could be combined to support JPA2 style locks. I can explore this path > if there is strong push back to the above proposal. > > Comments? > > Scott > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev