Spring Data JPA 实战 - 事务处理
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class SomeService {
@Autowired
private SomeRepository someRepository;
@Transactional
public void someTransactionalMethod() {
// 执行一些数据库操作
someRepository.findById(1L).orElseThrow(() -> new EntityNotFoundException("Not found"));
someRepository.deleteById(1L);
// 这里可以添加更多的数据库操作
// 如果没有抛出异常,Spring将自动提交这个事务
}
}
这个例子中,@Transactional
注解被用于 someTransactionalMethod
方法上,以确保该方法中的所有数据库操作都被包装在一个事务内。如果方法成功完成,而没有抛出任何异常,Spring Data JPA 将自动提交这个事务。如果方法中抛出了异常,默认情况下,这个事务将被回滚。
评论已关闭