[스프링] JPA와 스키마 생성 전략
목차
JPA 소개
JPA(Java Persistence API)는 자바 객체와 관계형 데이터베이스의 매핑을 위한 자바 표준 기술입니다. JPA를 통해 개발자는 객체지향적인 방식으로 데이터베이스를 다룰 수 있어 개발 생산성을 향상시킬 수 있습니다.
JPA에서의 스키마 생성 전략
JPA를 사용하면 모델 클래스를 기반으로 데이터베이스 테이블을 자동으로 생성할 수 있습니다. 이때 사용되는 스키마 생성 전략은 다음과 같이 설정할 수 있습니다:
- Create : 엔티티 매니저 팩토리를 생성할 때 데이터베이스 테이블을 모두 삭제하고 새로 생성합니다.
- Create-Drop : 애플리케이션 시작 시 테이블을 만들고, 애플리케이션이 종료될 때 테이블을 삭제합니다.
- Update : 테이블이 존재하지 않으면 테이블을 만들고, 이미 존재하는 테이블의 변경된 부분만 수정합니다.
- Validate : 엔티티와 테이블이 정상적으로 매핑되는지만 확인하고, 실제 테이블은 생성하지 않습니다.
이러한 설정은 persistence.xml 파일에서 설정할 수 있습니다.
예시 코드
다음은 persistence.xml 파일에서 스키마 생성 전략을 설정하는 예시 코드입니다:
<persistence-unit name="myPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.schema-generation.database.action" value="create-drop"/>
</properties>
</persistence-unit>
참고 자료
-
JPA 자바 ORM 프로그래밍 - 김영한 저 에이콘출판사 2015년 12월 30일 출간