[스프링] JPA와 스키마 생성 전략

목차

JPA 소개

JPA(Java Persistence API)는 자바 객체와 관계형 데이터베이스의 매핑을 위한 자바 표준 기술입니다. JPA를 통해 개발자는 객체지향적인 방식으로 데이터베이스를 다룰 수 있어 개발 생산성을 향상시킬 수 있습니다.

JPA에서의 스키마 생성 전략

JPA를 사용하면 모델 클래스를 기반으로 데이터베이스 테이블을 자동으로 생성할 수 있습니다. 이때 사용되는 스키마 생성 전략은 다음과 같이 설정할 수 있습니다:

  1. Create : 엔티티 매니저 팩토리를 생성할 때 데이터베이스 테이블을 모두 삭제하고 새로 생성합니다.
  2. Create-Drop : 애플리케이션 시작 시 테이블을 만들고, 애플리케이션이 종료될 때 테이블을 삭제합니다.
  3. Update : 테이블이 존재하지 않으면 테이블을 만들고, 이미 존재하는 테이블의 변경된 부분만 수정합니다.
  4. 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>

참고 자료