-
깃허브 경로: https://github.com/holyeye/jpabook
src/main/resources
-META-INF
- persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="jpabook">
<properties>
<!-- H2 데이터베이스 드라이버 및 설정 -->
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test;"/>
<!-- H2 데이터베이스 방언 사용 -->
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<!-- 테이블 자동 생성 -->
<property name="hibernate.hbm2ddl.auto" value="create"/>
<!-- 실행되는 SQL 을 보여줌 -->
<property name="hibernate.show_sql" value="true" />
<!-- 실행되는 SQL 을 이쁘게 보여줌 -->
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.id.new_generator_mappings" value="true"/>
</properties>
</persistence-unit>
</persistence>
기초매핑설정
@Entity
이 클 래스를 테이블과 매핑한다고 JPA에게 알려준다. 이렇게 @Entity가사용된
클래스를 엔티티 클래스라 한다.
기본생성자 필수
final 클래스 enum,interfacem inner 클래스에는 사용할수 없음
저장필드에 final을 사용하면 안됨.
@Table
엔티티 클래스에 매핑할 테이블 정보를 알려준다. 여기서는 name 속성을 사용해
서 Member 엔티티를 MEMBER 테이블에 매핑했다. 이 어노테이션을 생략하면 클
래 스 이름을 테이블 이름으로 매핑한다
ex----------------------------------------
@Table (name "Member" )
public class Member { ... }
------------------------------------------
@ld
엔티티 클래스의 필드를 테이 블의 기본 키 Primary key 에 매핑한다. 여기서는 엔티
티의 id 필드를 테이 블의 10 기본 키 컬럼에 매핑했다. 이렇게 @id가 사용된 펼
드를 식별자 필드라 한다.
ex----------------------------------------
@ld
private String id;
------------------------------------------
@Column
필드를 컬럼에 매핑한다 여기서는 name 속성을 사용해서 Member 엔티티의
username 필드를 MEMBER 테이블의 N따1E 컬럼에 매핑했다.
ex----------------------------------------
@Column(NAME="MEMBER_ID")
private String id;
------------------------------------------
Enum 어노테이션
@Enumerated(EnumType.STRING)
private RoleType roleType;
날짜 어노테이션
@Temporal(TemporalType .TlMESTAMP)
private Date createdDate;
매핑 정보가없는필드
매핑 어노테이션을 생략하면 필드명을 사용해서 컬럼명으로 매핑한다.
예를들어 필드명이 AGE 면 @Column(NAME="AGE") 와 같다
persistence.xml 설정에 관해서
META-INF/persistence.xml 클래스 패스 경로에 있으면 별도의 설정없이 jpa 인식가능함
'개발 > java' 카테고리의 다른 글
jstl substring (0) 2015.12.19 JSTL 태그라이브러리 (0) 2015.12.19 JPA 시작 (0) 2015.12.18 서브도메인과의 opener 권한문제 해결방법 (0) 2015.05.03 interface 와 추상클래스 차이 (0) 2015.01.17