我得到以下堆栈跟踪:
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)
这是由于乐观锁定异常。我可以解决这个问题的根本原因。
我的问题是 - 在这种情况下 - 异常处理将数据库连接设置为“关闭”。(这会导致我的连接池出现问题)。
处理数据库异常的模式是什么,比如HibernateOptimisticLockingFailureException
通过 spring 和 hibernate 冒泡并返回一个关闭的连接?
您知道 Spring/Hibernate 代码中将连接设置为关闭的部分吗?