Spring禁用单个类方法的事务

时间:2017-11-23 20:23:53

标签: spring transactions spring-transactions

在我的Spring应用程序中,我有一个用org.springframework.transaction.annotation.Transactional注释注释的类。

是否可以在不从类级别声明中删除@Transactional的情况下丢弃此类的特定单个方法的事务?如果是,请显示示例

2 个答案:

答案 0 :(得分:5)

根据Transactional

ricSubscription.style.set_table_attributes(
    'style="border-collapse:collapse"'
).set_table_styles([
    # Rest of styles
]).render()

除了类级别注释之外,只需在方法中定义正确的属性即可禁用默认的事务处理。

示例:

`public @interface Transactional

Describes transaction attributes on a method or class.` 
如果在活动事务中调用此方法,

将抛出异常。而@Transactional(propagation=Propagation.NEVER) public long notInTransaction(AnythingData anythingData) throws Exception { //JDBC code... } 将"暂停"当前事务并确保该方法被称为非事务性。

答案 1 :(得分:-1)

您可以通过创建自定义Exception类来完成此操作。使用下面的代码

@Transactional(rollbackFor = { CustomException.class})

现在从你需要的任何方法CustomException

中抛出transactional