Jestem nowy w Spring Transaction. Coś, co wydało mi się naprawdę dziwne, prawdopodobnie dobrze to zrozumiałem.
Chciałem mieć transakcję na poziomie metody i mam metodę wywołującą w tej samej klasie i wygląda na to, że nie podoba mi się to, musi być wywoływana z oddzielnej klasy. Nie rozumiem, jak to możliwe.
Jeśli ktoś ma pomysł, jak rozwiązać ten problem, byłbym bardzo wdzięczny. Chciałbym użyć tej samej klasy do wywołania metody transakcyjnej z adnotacjami.
Oto kod:
public class UserService {
@Transactional
public boolean addUser(String userName, String password) {
try {
// call DAO layer and adds to database.
} catch (Throwable e) {
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
}
public boolean addUsers(List<User> users) {
for (User user : users) {
addUser(user.getUserName, user.getPassword);
}
}
}
TransactionTemplate
podejście: stackoverflow.com/a/52989925/355438