[英]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.