[java] Hibernate에서 트랜잭션 롤백(Rollback)하는 방법은?

Hibernate은 자바 기반의 ORM(Object-Relational Mapping) 프레임워크로, 데이터베이스와의 상호작용을 쉽게 처리할 수 있도록 도와줍니다. 트랜잭션 롤백은 데이터베이스 트랜잭션에서 변경 사항을 취소하고 이전 상태로 되돌리는 것을 의미합니다. Hibernate에서는 트랜잭션 롤백을 다음과 같은 방법으로 수행할 수 있습니다.

1. 프로그래밍적인 방법

Hibernate에서 트랜잭션 롤백을 수행하기 위해 다음과 같은 코드를 사용할 수 있습니다.

try {
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    
    // 트랜잭션 처리
    
    tx.rollback(); // 트랜잭션 롤백 수행
    
} catch (Exception e) {
    // 예외 처리
}

위의 예제 코드에서 tx.rollback() 메서드를 호출하여 트랜잭션을 롤백할 수 있습니다. 예외가 발생했을 경우에도 catch 블록에서 롤백을 수행할 수 있습니다.

2. 어노테이션을 이용한 방법

Hibernate에서는 어노테이션을 사용하여 트랜잭션을 롤백할 수도 있습니다. @Transactional 어노테이션을 메서드나 클래스에 추가하여 트랜잭션을 자동으로 관리할 수 있습니다. 예를 들어 다음과 같은 코드를 작성할 수 있습니다.

@Transactional
public void performTransaction() {
    // 트랜잭션 처리
}

위의 예제 코드에서 performTransaction() 메서드에서는 트랜잭션을 수행하는데, 예외가 발생하면 자동으로 트랜잭션을 롤백합니다.

정리

Hibernate에서 트랜잭션 롤백을 수행하기 위해 다양한 방법을 사용할 수 있습니다. 프로그래밍적인 방법과 어노테이션을 이용한 방법 모두 유용하며, 상황에 맞게 적절한 방법을 선택하여 사용하면 됩니다.

더 자세한 내용은 Hibernate 공식 문서를 참고하시면 좋습니다.