ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기본설정
    개발/java 2015. 12. 18. 13:56

    깃허브 경로: 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 인식가능함




    자바 ORM 표준 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
Designed by Tistory.