我得到了以下堆栈跟踪:
org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [com.btfin.wrapcore.request.MFRequest] with identifier [2850448]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.btfin.wrapcore.request.MFRequest#2850448]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:793)
由于乐观锁的异常,这是导致问题的根本原因。我可以解决这个问题。
我的问题是,在这种情况下,异常处理将数据库连接设置为“关闭”。(这会影响我的连接池)。
如何处理通过Spring和Hibernate上升并返回关闭连接的
HibernateOptimisticLockingFailureException
等数据库异常的模式?您知道Spring / Hibernate代码中设置连接为关闭的部分吗?