개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.23 13:09

Session::rollback에 대한 질문

목록
  • 도커마법사 22시간 전 2025.05.23 13:09 새글
  • 2
    1
저는 Spring Framework를 이용하여 데이터베이스 연동을 공부하고 있습니다.
현재 Session::rollback 메서드에 대해 혼란스럽습니다.
Session::rollback을 호출하면 어떤 과정을 거치며,
어떤 동작을 수행하는지 정확하게 알고 싶습니다.
rollback을 호출한 후에, Session을 다시 사용할 수 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  22시간 전



    Spring Framework에서 Session::rollback 메서드는 트랜잭션을 롤백하는 메서드입니다.

    1. 트랜잭션을 시작하기 위해 `@Transactional` 어노테이션을 사용하거나 `Session.beginTransaction()` 메서드를 호출합니다.
    2. 트랜잭션 내에서 데이터베이스에 변경을 수행합니다.
    3. 롤백을 호출하기 전에 `Session.commit()` 메서드를 호출하지 않은 경우, 트랜잭션은 자동으로 롤백됩니다.
    4. `Session.rollback()` 메서드를 호출하면 트랜잭션 내의 모든 변경이 취소됩니다.
    5. 롤백 후, Session은 다시 사용할 수 있습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    java
    
    @Service
    
    public class UserService {
    
        @Autowired
    
        private SessionFactory sessionFactory;
    
    
    
        @Transactional
    
        public void createUser(User user) {
    
            Session session = sessionFactory.getCurrentSession();
    
            session.save(user);
    
            // 롤백을 호출하기 전에 commit을 호출하지 않은 경우, 자동 롤백
    
            // session.commit();
    
            session.rollback();
    
            // 롤백 후, Session은 다시 사용할 수 있습니다.
    
            session.save(new User("이름", "이메일"));
    
        }
    
    }
    
    


    이 예제에서 `createUser` 메서드는 트랜잭션 내에서 사용자를 생성하고 롤백합니다. 롤백 후, Session은 다시 사용할 수 있습니다.

    2025-05-23 13:10

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 21,953건 / 1 페이지

검색

게시물 검색