JPA

JPA 설정 하기

salmon16 2023. 8. 26. 16:58

JPA 설정은 persistence.xml 파일에 해야 한다

위 파일의 경로는 resources/META_INF에 만들어야 한다.

persistence파일을 보자 주석 참고

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.2" 
 xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> 
 <persistence-unit name="hello"> 
 <properties> 
 <!-- 필수 속성 --> 
 <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> // h2 디비 사용
 <property name="javax.persistence.jdbc.user" value="sa"/>  // db아이디
 <property name="javax.persistence.jdbc.password" value=""/>  //db 비밀번호
 <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>  //db 주소
 <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> // JPA중에 H2방언을 사용한다
 
 <!-- 옵션 --> 
 <property name="hibernate.show_sql" value="true"/>  //sql 보기
 <property name="hibernate.format_sql" value="true"/> // sql 형식으로 예쁘게 출력
 <property name="hibernate.use_sql_comments" value="true"/>  // sql 설명
 <!--<property name="hibernate.hbm2ddl.auto" value="create" />-->  // 데이터 베이스 스키마 자동 생성
 </properties> 
 </persistence-unit> 
</persistence>

JPA는 특정 데이터베이스에 종속되지 않는다 

데이터 베이스에 따라 SQL 문법과 함수가 조금씩 다르다 

그래서 persistence파일에 dialect에 어떤 DB를 사용할지 설정해 주어야 한다.

 

옵션의 DDL 자동 설정 부분을 보자

<property name="hibernate.hbm2ddl.auto" value="create" /> 

이 부분은 DDL을 설정하는 코드이다

DDL을 애플리케이션 실행 시점에 dialect정보를 활용하여 자동으로 생성을 해 준다.

다양한 옵선을 살펴보자

  • create : 기존 테이블 삭제 후 다시 생성
  • create-drop : create + 종료 시점에 drop
  • update : 변경 부분만 반영한다
  • validate : 엔티티와 테이블이 정상 매핑되었는지만 확인한다.
  • none : 사용하지 않음

하지만 운영서버에서는 validate, none만 사용해야 한다.

 

DDL 생성 시 제약조건을 추가할 수 있다.

@Column(nullable = false, length = 10)을 해주면 이에 맞는 SQL이 생성된다.

 

 

 

'JPA' 카테고리의 다른 글

상속관계 매핑  (0) 2023.08.29
다양한 연관관계 매핑  (0) 2023.08.29
연관관계 매핑, 단방향, 양방향  (0) 2023.08.28
엔티티 매핑, 기본 키 매핑  (0) 2023.08.27
영속성 컨텍스트  (0) 2023.08.26