저는 Spring Transaction을 처음 사용합니다. 내가 정말 이상하다고 생각한 것, 아마도 이것을 제대로 이해했을 것입니다. 메서드 수준에서 트랜잭션을 수행하고 싶었고 동일한 클래스 내에 호출자 메서드가 있고 그것을 좋아하지 않는 것처럼 보입니다.이 메서드는 별도의 클래스에서 호출해야합니다. 나는 그것이 어떻게 가능한지 이해하지 못한다. 누구든지이 문제를 해결하는 방법을 알고 있다면 크게 감사하겠습니다. 주석 처리 된 트랜잭션 메소드를 호출 할 때 동일한 클래스를 사용하고 싶습니다.Spring @Transaction 메서드 호출이 같은 클래스 내의 메서드로 작동하지 않습니까?
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);
}
}
}
감사합니다. 지금은 코드를 리팩토링했지만 AspectJ를 사용하여 예제를 보내거나 유용한 링크를 제공 해줄 수 있습니까? 미리 감사드립니다. 마이크. – Mike
내 대답에 트랜잭션 특정 AspectJ 구성이 추가되었습니다. 나는 그것이 도움이되기를 바랍니다. – Espen
당신의 모든 도움에 감사드립니다. 그것은 작동! – Mike