Я надеялся, что кто-нибудь сможет подтвердить мое понимание поведения транзакций в сервисе Spring.
Во-первых, я прав, полагая, что при использовании TransactionManager
все службы, которые приводят к сохранению базы данных, должны вызываться из метода @Transactional
, чтобы обновление сохранялось до БД?
Например, учитывая следующий класс:
class MyService
{
CustomerImporter customerImporter
CustomerDAO customerDAO
public void updateCustomer(Customer customer)
{
customerDAO.update(customer)
}
public List<Customer> importCustomers(String url)
{
customerImporter.importCustomers(url);
}
return customerDAO.getFromURL(url);
}
Если updateCustomer
не @Transactional
, будет ли метод иметь какой-либо эффект?
Кроме того, если на CustomerImporter
метод importCustomers()
помечен @Transactional
, а MyService - нет, будет ли обновление сохранено в базе данных?