繁体   English   中英

如何在春季使用@Transactional

[英]How to use @Transactional in spring

我的项目中有一些代码,那么如果使用@Transactional而不是@CoreTransactional什么不同?

  @Target({ElementType.METHOD, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Transactional(transactionManager = "jpaTransactionManager")
    public @interface CoreTransactional {
    }
And this is config.xml 
<!-- Transaction manager -->
    <bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="emfOracle"/>
    </bean>

<!-- Entity manager -->
    <bean id="emfOracle" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" primary="true">
        <property name="dataSource" ref="dataSourceOracle" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
        <property name="packagesToScan">
            <array>
                <value>com.heb.pm</value>
                <value>com.heb.util.jpa</value>
            </array>
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.Oracle10gDialect
                </prop>
                <prop key="hibernate.max_fetch_depth">3</prop>
                <prop key="hibernate.jdbc.fetch_size">50</prop>
                <prop key="hibernate.jdbc.batch_size">10</prop>
                <prop key="hibernate.show_sql">${jpa.showSql}</prop>
                <prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
                <prop key="hibernate.default_schema">${jpa.schema.oracle}</prop>
                <prop key="hibernate.enable_lazy_load_no_trans">true</prop>
            </props>
        </property>
    </bean>

@Transactional是 Spring 事务的注解。

@CoreTransactional是使用@Transactional并使用jpaTransactionManger 注释的自定义注释。

我认为jpaTransactionManger还定制配置,所以你必须使用@CoreTransactional如果你想使用这个JpaTransactionManager接口

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM