Getting no connection保持器available error,是他们在spring 5中对TransactionProxyFactoryBean的任何更改,使用apache ojb作为orm
**<bean id="testBean" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="target">
<ref bean="TestTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
<prop key="update*">PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
<prop key="save*">PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
<prop key="delete*">PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>**
**java.lang.IllegalStateException: No ConnectionHolder available**
at org.springframework.util.Assert.state(Assert.java:76) ~[spring-core-5.3.25.jar:5.3.25]
at org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.getConnectionHolder(JdbcTransactionObjectSupport.java:76) ~[spring-jdbc-5.3.25.jar:5.3.25]
at org.springmodules.orm.ojb.PersistenceBrokerTransactionManager$PersistenceBrokerTransactionObject.isRollbackOnly(PersistenceBrokerTransactionManager.java:230) ~[classes/:?]
1条答案
按热度按时间mqkwyuun1#
你似乎使用了非常古老的(我会说是古老的)Spring Modules(在2008年被Spring Extensions取代,此后也被弃用)。
实际上,我很惊讶它能工作这么久,因为它已经被弃用/不支持了15年以上。Spring Extensions在那之后不久就被放弃了(或者至少没有多少版本被发布)。
list of Spring Extensions显示其中一些已经被放弃,其他已经被集成到投资组合本身的部分(如Spring Security,Spring Integration或Spring Data)。其他只是为了利基而被放弃。
所以我建议简单地抛弃Spring Modules,因为没有支持您当前技术堆栈的版本。我不确定您正在使用什么,但它似乎与JPA/Hibernate有关,我怀疑它已经被Spring Data模块之一取代和改进。