JPA spring @Transaction 自动提交

编程入门 行业动态 更新时间:2024-10-28 00:23:51
本文介绍了JPA spring @Transaction 自动提交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送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.TransactionAttributeorg.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:关键词]

本文发布于:2023-04-30 01:28:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1198693.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:JPA   spring   Transaction

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!