春のトランザクションのコミットとロールバックの方法は何ですか?
春の中でのトランザクションのコミットやロールバックは、プログラムによるトランザクション管理や声明によるトランザクション管理によって実現される。
- プログラムによるトランザクション管理:通常、TransactionTemplateクラスを使用して、コード内でプログラムによりトランザクションのコミットとロールバックを行います。以下はサンプルコードです。
@Autowired
private PlatformTransactionManager transactionManager;
public void doSomething() {
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
transactionTemplate.execute(status -> {
// 执行业务逻辑
// 如果需要回滚,可以通过status.setRollbackOnly()来设置回滚
return null;
});
}
- 声明式事务管理:@Transactional注釈やXML構成によって、トランザクションの属性を宣言することで、Springはメソッドの実行前にトランザクションを開始し、メソッドの実行結果に応じて自動的にコミットまたはロールバックします。次のコード例をご参照ください:
@Transactional
public void doSomething() {
// 执行业务逻辑
}
以上の2つの方法の中で、処理が正常に完了するとトランザクションは自動的にコミットされます。一方、例外が発生した場合はトランザクションが自動的にロールバックされます。また、プログラムでのトランザクション管理では、手動でトランザクションのロールバック状態を設定することもできます。