Annotations

  • @Entity : 테이블과 매핑한다고 JPA에 알린다.
    • name: 엔티티 이름 지정
  • @Table : 매핑할 테이블 정보를 알려준다.
    • name: 매핑할 테이블 이름 지정
    • schema: 테이블이 위치한 스키마 지정
    • catalog: 테이블이 위치한 카탈로그 지정
    • uniqueConstraints: 테이블 유니크 제약 조건 정의
    • indexes: 테이블에 인덱스를 추가
  • @Id : PK에 해당한다.
  • @GeneratedValue
    • strategy: 기본 키 생성 전략을 지정한다. (AUTO, IDENTITY, SEQUENCE, TABLE)
    • generator: 생성 전략의 이름을 지정
  • @Column : 필드 컬럼을 매핑한다.
    • name: 컬럼 이름을 지정
    • nullable: 컬럼이 null 값을 허용할지 여부를 지정한다.
    • unique: 컬럼이 유니크 제약 조건을 가질지 여부를 지정한다.
    • insertable: 컬럼이 INSERT 쿼리에 포함될지 여부를 지정한다.
    • updatable: 컬럼이 UPDATE 쿼리에 포함될지 여부를 지정한다.
    • length: 문자열 컬럼의 길이를 지정
    • precision: 숫자 컬럼의 정밀도를 지정
    • scale: 숫자 컬럼의 소수 자릿수를 지정
  • @Temporal: 날짜/ 시간 타입 필드에 대해 날짜, 시간의 정확도를 지정한다.
    • value: DATE, TIME, TIMESTAMP를 지정
  • @LOB: BLOB, CLOB 타입의 필드를 매핑한다.
  • @Transient: 이 필드는 데이터베이스에 매핑되지 않음을 나타낸다.
  • @OneToOne: 일대일 관계를 정의한다.
    • cascade: 연쇄 작업을 지정한다.
    • fetch: 연관된 엔티티를 로드할 시점을 지정한다. (LAZY, EAGER)
    • mappedBy: 양방향 관계에서 주 테이블을 지정한다.
  • @OneToMany: 일대다 관계를 정의한다.
    • cascade: 연쇄 작업을 지정한다.
    • fetch: 연관된 엔티티를 로드할 시점을 지정한다. (LAZY, EAGER)
    • mappedBy: 양방향 관계에서 주 테이블을 지정한다.
  • @ManyToOne: 다대일 관계를 정의한다.
    • cascade: 연쇄 작업을 지정한다.
    • fetch: 연관된 엔티티를 로드할 시점을 지정한다. (LAZY, EAGER)
  • @ManyToMany: 다대다 관계를 정의한다.
    • cascade: 연쇄 작업을 지정한다.
    • fetch: 연관된 엔티티를 로드할 시점을 지정한다. (LAZY, EAGER)
    • mappedBy: 양방향 관계에서 주 테이블을 지정한다.
  • @JoinColumn: 외래 키를 매핑할 컬럼을 지정한다.
    • name: 외래 키 컬럼 이름을 지정한다.
    • referencedColumnName: 참조된 컬럼 이름을 지정한다.
    • nullable: 외래 키가 null을 허용하는지 여부를 지정한다.
    • unique: 외래 키 컬럼이 유니크 제약 조건을 가지는지 여부를 지정한다.
  • @JoinTable: 다대다 관계에서 중간 테이블을 정의한다.
    • name: 중간 테이블의 이름을 지정한다.
    • joinColumns: 외래 키를 포함하는 컬럼을 지정한다.
    • inverseJoinColumns: 다른 엔티티의 외래 키 컬럼을 지정한다.
  • @Version: 낙관적 잠금을 구현할 때 사용하는 버전 필드를 지정한다.
  • @Embeddable: 해당 클래스가 다른 엔티티에 내장될 수 있음을 나타낸다.
  • @Embedded: @Embeddable 클래스를 엔티티에 내장한다.
  • @ElementCollection: 엔티티 내에서 기본 값 유형의 컬렉션을 매핑한다.
    • fetch: 연관된 엔티티를 로드할 시점을 지정한다.(LAZY, EAGER)
    • targetClass: 컬렉션의 요소 클래스
  • @Enumerated: Enum 타입의 필드를 DB에 저장할 때 어떻게 저장할지 지정하는 어노테이션이다.
    • EnumType.ORDINAL: 순서
    • EnumType.STRING: 이름으로 저장한다.
  • @Converter: JPA에서 사용자 정의 타입 변환기를 정의할 때 사용하는 어노테이션이다.
  • @Access: JPA가 엔티티에 접근하는 방식을 지정
  • @JoinTable: N:M 관계의 테이블 구조와 관계를 상세히 정의할 수 있다.
    • name: 중간 테이블 이름
    • joinColumns: 중간 테이블에 대응되는 컬럼을 지정한다.
    • inverseJoinColumns: 반대쪽 엔티티에서 중간 테이블에 대응되는 컬럼을 지정한다.
    • uniqueConstraint: 중간 테이블에 대한 유니크 제약 조건을 설정한다.
    • schema: 테이블이 속한 스키마를 지정한다.
    • catalog: DB 카탈로그를 지정한다.