jpa 엔티티 매핑

간략하게 정리만 해보겠다. 나머지는 책을 사서 읽어보도록!

  • @Entity

    JPA에서 사용할 엔티티 이름을 지정한다. 설정을 하지 않으면 클래스 그대로를 사용한다.
    기본생성자는 필수로 지정해애 된다. private 은 안된다.

  • @Table

    엔티티와 매핑할 테이블을 지정하고 생략하면 매핑한 엔티티 이름 그대로를 사용한다. 유니크 제약 조건을 속성으로 지정 할 수 있다.

  • @Enumerated

    자바의 enum을 사용할 때 정의한다.

  • @Temporal

    날짜 타입을 사용할 때 정의한다.
    TempoarlType.TIMESTAMP, TempoarlType.DATE, TempoarlType.TIME 등으로 지정 할 수 있다.

  • @Lob

    필드의 길이 제한이 없다. CLOB,BLOB 타입을 매핑할 수 있다.

  • @Column

    매핑 정보를 정의할 수 있다. name, nullable, length, columnDefinition 등의 속성이 있다.
    참고: 자바의 기본타입경우에는 null이 들어가지 않으므로 nullable=false로 지정하는 것이 안전하다.

  • Id

    데이터 베이스의 KEY라고 정의 한다.

  • GeneratedVaue

    데이터베이스가 키를 생성해준다. 속성으론 IDENTITY, SEQUENCE, TABLE이 있다.

  • Transient

    매핑을 하지 않을 경우 사용한다. 데이터베이스에 저장, 조회하지 않는다.

  • Access

    엔티티 데이터 접근하는 방식을 정의한다.
    AccessType.FIELD, AccessType.PROPERTY 필드 혹은 getter로 접근 할 수 있다. 필드일 경우엔 private도 접근 가능하다.