J'espérais que quelqu'un pourrait confirmer ma compréhension du comportement des transactions dans un service de printemps. Premièrement, ai-je raison de croire que lorsque vous utilisez TransactionManager
, tous les services qui entraînent la persistance dans la base de données doivent être invoqués depuis une méthode @Transactional
pour que la mise à jour persiste dans la base de données?Est-ce que je comprends correctement le comportement de Spring @Transactional?
Par exemple, étant donné la classe suivante:
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);
}
Si updateCustomer
n'est pas @Transactional
, sera la méthode a un effet?
En outre, si sur CustomerImporter
la méthode importCustomers()
est marquée @Transactional
mais MyService ne l'est pas, la mise à jour sera-t-elle conservée dans la base de données?