PostIT

[JPA/Hibernate] Entity Mapping 관련 Annotation에 대한 정보 본문

Spring/JPA(Hibernate)

[JPA/Hibernate] Entity Mapping 관련 Annotation에 대한 정보

shun10114 2017. 1. 5. 09:15
  1. 테이블 자동생성
    1) Primary Key 매핑 
        가) 직접 할당
            - 기본 키를 애플리케이션에 직접 할당한다.

        나) 자동 생성
            - IDENTITY : 기본 키를 생성해 데이터베이스에 위임한다.(Mysql, MariaDB... - Auto_Increment)
            - SEQUENCE : 데이터베이스 시퀀스를 사용하여 기본키 할당. (PostgreSQL, DB2, SQL Server ...)
                Example)
                    @Entity
                    @SequenceGenerator (name = "USER_SEQ_GENERATOR", sequenceName = "USER_SEQ", initialValue = 1, allocationSize=1)
                    //initailValue 시작 값, allocationSize 시퀀스 한번 호출에 증가하는 수(성능 최적화를 위한 값)

                    @Id
                    @GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "USER_SEQ_GENERATOR")

            - TABLE : 키 생성 테이블을 사용한다.
            - AUTO : 위 세가지 중 데이터베이스에 적합한 방법을 스스로 선택한다.
                (SEQUENCE나 TABLE 방법이 선택되면 그에 상응하는 SEQUENCE와 TABLE이 존재/설정해야 한다.) 


    2) Column Value 매핑
        가) @Column
        나) @Enumerated
        다) @Temporal
        라) @Lob
        마) @Transient

    3) Data Access Type 지정
        가) @Access
            - AccessType.FIELD : 필드에 직접 접근. 필드 접근 권한이 private이어도 접근한다.
            - AccessType.PROPERTY : Getter를 사용하여 접근한다.



Comments