클래스 수준에서 @Transactional
으로 표시된 기본 Dao 클래스가있는 경우 Dao의 모든 호출이 자체 트랜잭션에서 실행됩니다.기존 트랜잭션 방식에 대한 트랜잭션을 래핑 하시겠습니까?
다른 DA 방법에 대한 호출을 여러 번 사용하는 어딘가에서 메서드를 만드는 경우 어떻게해야합니까? 이러한 각각의 호출은 자체 트랜잭션에서 실행됩니까, 아니면 트랜잭션이 래핑됩니까?
@Service
@Transactional
class BaseDao<T> {
//each of these methods will run in a transaction
public void save(T entity) { }
public void update(T entity) { }
}
@Service
class PersonFacade() {
//will this "wrapp" the transaction?
@Transactional
void update() {
dao.find();
dao.update();
}
}
가 포장되어있는 경우, 다음 그것을 DAO는 CRUD 작업을 관리 할 수 @Autowired BaseDao<Person>
로 직접 사용될 수 있도록, 일반 DAO 클래스에 @Transactional
주석을 갖는 좋은 방법이라고 생각? 그리고 필요한 경우에만 단일 트랜잭션 내에서 실행해야하는 여러 번의 분주 한 전화를 마무리하는 외벽을 만듭니다.
아니면 기본 dao에서 트랜잭션을 제거해야합니까?