老久不玩这个了,记录下备查。
去掉方法不能有Transaction注解,
spring要配置个TransactionTemplate:
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="timeout" value="300" />
<property name="transactionManager" ref="transactionManager" />
</bean>
在代码中如下书写:
try {
transTemplate.execute(new TransactionCallbackWithoutResult() { //TransactionCallback
protected void doInTransactionWithoutResult(TransactionStatus status) {
try { } catch (Exception e) {
status.setRollbackOnly();
e.printStackTrace();
}
}
});
transTemplate.execute方法可能抛出ObjectOptimisticLockingFailureException之类的异常,可以捕获。
都是官方的,很简单,地址是:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/data-access.html#transaction-programmatic