[JPA] Entity 클래스에서 사용하는 어노테이션 정리

jihun Choi·2023년 4월 15일
0
post-thumbnail
@Entity
public class Member {

    @Id
    @Column(name = "MEMBER_ID")
    private Long id;
    @Column(name = "name", unique = true, length = 10)
    private String username;
    private int age;

    @ManyToOne
    @JoinColumn(name = "TEAM_ID")
    private Team team;

    @Enumerated(EnumType.STRING)
    private RoleType roleType;

    @Temporal(TemporalType.TIMESTAMP)
    private Date createdDate;

    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifiDate;

    @Lob
    private String description;

    @Transient
    private int temp;
}
@Column 속성
  • name - 필드와 매핑할 테이블의 컬럼 설정
  • insertable, updateable - 등록, 변경 가능 여부 defalut true
  • nullbale - null 값 여부 false로 설정시 not null 제약조건
  • unique - 컬럼에 unique 조건 하지만 운영에서는 잘 안씀 unique
    제약조건이름이 이상한게 들어감
  • columnDefinition - 데이터베이스 컬럼 정보 직접 적용가능
    ex) varchar(100) default "EMPTY"
  • length - varchar 길이 조정 String 타입에서만 사용
@Enumerated 속성
  • EnumType.ORDINAL - enum 순서를 데이터베이스에 저장
    • enum 순서가 테이블에 들어가기 때문에 순서가 뒤바뀔경우 문제가 발생
  • EnumType.STRING - enum 이름을 데이터베이스에 저장
@Temporal
날짜 컬럼일 경우 어노테이션 넣어줌 LocalDate, LocalDateTime로 대체 가능
@Lob
대용량 컬럼일 경우 어노테이션 넣어줌 문자면 Clob 나머지 blob으로 매핑
profile
성장을 위해 열심히 노력하는 개발자 입니다

0개의 댓글