Jestem nowy w wiosennej transakcji. Niektóre rzeczy, które uważam za naprawdę dziwne, prawdopodobnie zrozumiałem to poprawnie. Chciałem mieć transakcję na poziomie metody i mam metodę wywołującą w tej samej klasie i wygląda na to, że to się nie podoba, musi być wywołana z oddzielnej klasy. Nie rozumiem, jak to jest 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 transakcji z adnotacjami.Wywołanie metody spring @Transaction metodą w ramach tej samej klasy, nie działa?
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);
}
}
}
Dziękuję za informację. Na razie refaktoryzowałem kod, ale czy mógłbyś wysłać mi przykład używając AspectJ lub dostarczyć mi kilka pomocnych linków. Z góry dziękuję. Mikrofon. – Mike
W mojej odpowiedzi dodano konfigurację AspectJ specyficzną dla transakcji. Mam nadzieję, że to pomoże. – Espen
Dziękuję Espen za całą pomoc. To działa!! – Mike