Hibernate는 ORM(Object-Relational Mapping) 프레임워크로, 객체와 관계형 데이터베이스 간의 매핑을 관리해줍니다. 스키마 변경은 데이터베이스 구조를 수정하는 작업으로, Hibernate에서 스키마 변경을 수행하려면 다음과 같은 절차를 따를 수 있습니다.
-
엔티티 클래스 수정: 먼저, 엔티티 클래스를 수정하여 변경하고자 하는 스키마 변경 내용을 반영해야 합니다. 예를 들어, 새로운 필드를 추가하거나 기존 필드를 수정하거나 삭제하는 경우 엔티티 클래스에 해당 변경 사항을 반영해야 합니다.
-
Hibernate 설정 수정: Hibernate 설정 파일인
hibernate.cfg.xml
또는persistence.xml
파일을 열어, 기존 스키마와의 매핑 관계를 수정해야 합니다. 스키마 변경 내용에 따라 엔티티와 데이터베이스 테이블 간의 매핑을 조정해야 합니다. -
데이터베이스 스키마 변경: Hibernate에서 제공하는 기능을 사용하여 데이터베이스 스키마를 변경할 수 있습니다. Hibernate의 내부 마이그레이션 도구를 활용하거나, Hibernate를 통해 데이터베이스 연결을 설정한 후, 자동으로 스키마 변경을 수행할 수 있습니다.
Hibernate를 사용하여 스키마 변경을 수행하는 예제 코드는 다음과 같습니다.
// Hibernate 설정
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties());
SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
// 엔티티 매니저 생성
EntityManager entityManager = sessionFactory.createEntityManager();
// 데이터베이스 스키마 변경
entityManager.getTransaction().begin();
entityManager.createNativeQuery("ALTER TABLE your_table ADD COLUMN new_column INT").executeUpdate();
entityManager.getTransaction().commit();
// 엔티티 매니저 종료
entityManager.close();
// 세션 팩토리 종료
sessionFactory.close();
위의 코드에서는 ALTER TABLE
문을 사용하여 “your_table” 테이블에 “new_column”이라는 새로운 열을 추가하고 있습니다. 필요에 따라 해당 코드를 수정하여 다른 스키마 변경 작업을 수행할 수 있습니다.
참고 문서:
- Hibernate 공식 문서: https://hibernate.org/orm/documentation/
- Hibernate 스키마 변경 가이드: https://docs.jboss.org/hibernate/orm/5.5/userguide/html_single/Hibernate_User_Guide.html#schema-migration