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 |