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