[java] Hibernate에서 트랜잭션 커밋(Commit)하는 방법은?
// 세션 열기
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
try {
// 트랜잭션 시작
transaction = session.beginTransaction();
// 작업 수행
// 트랜잭션 커밋
transaction.commit();
} catch (Exception e) {
// 예외 발생 시 롤백
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
} finally {
// 세션 닫기
session.close();
}
위의 코드에서는 다음과 같은 단계를 따릅니다:
- 세션을 열고 Hibernate의 세션 팩토리로부터 세션을 얻습니다.
beginTransaction()
메서드를 호출하여 트랜잭션을 시작합니다.- 작업을 수행합니다. (데이터베이스 조작, 조회 등)
commit()
메서드를 호출하여 트랜잭션을 커밋합니다. 트랜잭션은 커밋되면서 데이터베이스에 변경 내용이 반영됩니다.- 예외가 발생하면 롤백을 수행하여 트랜잭션을 취소합니다.
- 마지막으로 세션을 닫습니다.
트랜잭션은 데이터베이스 조작 시 일관성과 안정성을 보장하는 데 중요한 역할을 합니다. Hibernate에서는 트랜잭션을 사용하여 데이터베이스 작업을 그룹화하고, 성공적으로 완료되면 커밋하여 변경 내용을 영구적으로 반영합니다.
참고문헌:
- Hibernate Documentation: Transactions and Concurrency