Category : Spring Boot | Sub Category : Spring Boot | By Prasad Bonam Last updated: 2023-07-17 05:46:49 Viewed : 543
In Spring Boot, you can manage transactions using the @Transactional
annotation. This annotation allows you to define the boundaries of a transactional operation, ensuring that it either succeeds as a whole or fails as a whole. Here are a few examples of how you can use transactions in Spring Boot:
java@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Transactional
public void createUser(User user) {
userRepository.save(user);
}
}
In this example, the createUser
method is annotated with @Transactional
. When this method is invoked, a transaction will be created. If an exception occurs during the method execution, the transaction will be rolled back, and any changes made to the UserRepository
will be undone.
java@Service
@Transactional
public class ProductService {
@Autowired
private ProductRepository productRepository;
public void updateProduct(Product product) {
productRepository.save(product);
}
public void deleteProduct(Long productId) {
productRepository.deleteById(productId);
}
}
In this example, the ProductService
class is annotated with @Transactional
. All public methods within this class will be transactional by default. If an exception occurs during any of the public method invocations, the transaction will be rolled back.
java@Service
public class OrderService {
@Autowired
private OrderRepository orderRepository;
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
public void createOrder(Order order) {
// Perform some business logic
orderRepository.save(order);
}
}
In this example, the createOrder
method is annotated with @Transactional
and specifies the propagation and isolation levels. The propagation level is set to Propagation.REQUIRED
, which means that if there is an existing transaction, the method will participate in it; otherwise, a new transaction will be created. The isolation level is set to Isolation.READ_COMMITTED
, which ensures that the transaction can read only committed data.
These are just a few examples of how transactions can be used in Spring Boot. Remember to configure a transaction manager in your application context for the transaction management to work correctly.