问题描述
限时送ChatGPT账号..我在 oracle 中使用 spring-data-jpa.对于运行时异常,我无法让 @Transactional 默认回滚.
I am using spring-data-jpa with oracle. I am unable to get @Transactional to rollback by default for runtime exception.
这里是片段:
<persistence-unit name="dev2db" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@host:port" />
<property name="javax.persistence.jdbc.user" value="loginid" />
<property name="javax.persistence.jdbc.password" value="mypass" />
</properties>
</persistence-unit>
事务方法使用 import javax.transaction.Transactional;
transactional method uses import javax.transaction.Transactional;
@Transactional
public void uploadPanelAndAPK(String pz, byte[] file, String apk, byte[] fileApk, byte[] icon) {
uploadPanel(pz, file);
uploadApk(apk, fileApk, icon);
}
如果 uploadApk 失败,uploadPanel 不会回滚.
if uploadApk fails uploadPanel is not doing rollback.
beans context.xml 片段:
beans context.xml snippet:
<context:annotation-config />
<tx:annotation-driven transaction-manager="transactionManager"/>
<jpa:repositories base-package="com.myco.dao" />
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory"/>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:persistenceUnitName="dev2db">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
</bean>
<bean id="panelbo" class="com.myco.bo.PanelServiceSpringData"/>
问候,
手套.
推荐答案
javax.transaction.Transactional
(尚)不受支持.使用 javax.ejb.TransactionAttribute
或 org.springframewor.transaction.annotation.Transactional
.
javax.transaction.Transactional
isn't (yet) supported. Use either javax.ejb.TransactionAttribute
or org.springframewor.transaction.annotation.Transactional
.
这篇关于JPA spring @Transaction 自动提交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论