← Каталог
Работа с базами данных из Java — Декларативные транзакции в Spring
Фрагмент из «Работа с базами данных из Java»: Декларативные транзакции в Spring.
@Service
public class OrderService {
@Transactional
public Order createOrder(Long userId, List<OrderItem> items) {
User user = userRepository.findById(userId)
.orElseThrow(() -> new EntityNotFoundException("User not found"));
Order order = new Order();
order.setUser(user);
order.setItems(items);
order.setStatus(OrderStatus.CREATED);
order = orderRepository.save(order); // flush происходит автоматически
paymentService.charge(user, order.getTotal()); // вызов другого @Transactional-метода
return order;
}
} @Service
public class OrderService {
@Transactional
public Order createOrder(Long userId, List<OrderItem> items) {
User user = userRepository.findById(userId)
.orElseThrow(() -> new EntityNotFoundException("User not found"));
Order order = new Order();
order.setUser(user);
order.setItems(items);
order.setStatus(OrderStatus.CREATED);
order = orderRepository.save(order); // flush происходит автоматически
paymentService.charge(user, order.getTotal()); // вызов другого @Transactional-метода
return order;
}
}