在哪里可以找到有关在基于版本的乐观锁定保存操作中捕获哪些异常的信息。
“互联网”上的文本建议使用 Hibernate 自己的或 JPA 的
OptimisticLockingException
,但当我这样做时,我发现在我的基于 Hibernate 4.3 会话的应用程序中,这种类型的异常由 org.hibernate.StaleObjectStateException
携带。
建议的差异让我想知道“真正”的方法是什么。
此外,我已经准备从 Hibernate Session 迁移到 JPA。 (我的)这个问题有标准吗?那会是什么?
干杯 垫子
这取决于您要使用的 API。
如果您使用 JPA 和
EntityManager
接口,那么 Hibernate 将简单地将 StaleStateException
(它是 StaleObjectStateException
的基类)包装在 OptimisticLockingException
中。
如果您通过
Session
接口使用 Hibernate 特定的 API,您将得到 StaleObjectStateException
。