@Transactional 어노테이션을 이용해 간단하게 적용할 수 있다.
@Transactional public void saveUser(UserCreateRequest request) { User u = userRepository.save(new User(request.getName(), request.getAge())); }SELECT 쿼리만 사용한다면 @Transactional(readOnly = true)을 붙여 읽기 전용 처리를 할 수 있다. (약간의 성능 향상)
IOException와 같은 Checked Exception 발생시 트랜잭션 처리가 제대로 이뤄지지 않는다.
테이블과 매핑된 Entity 객체를 관리/보관하는 역할
스프링에서는 트랜잭션을 사용하면 영속성 컨텍스트가 생겨나고, 트랜잭션이 종료되면 영속성 컨텍스트가 종료된다.