Entity

aiden·2023년 12월 28일
0

Entity

엔티티는 자바에서의 클래스와 매핑되는 데이터베이스 상의 개념이다.

클래스를 작성할 때 @Entity 어노테이션을 붙여 해당 클래스는 엔티티임을 명시해주어야 한다.

다음은 엔티티의 속성에 적용할 수 있는 어노테이션 몇가지이다. 클래스의 필드를 작성할 때 붙이면 된다.

  • @Id : 이 어노테이션을 붙인 속성은 id, 즉 primary key가 된다. 해당 속성은 기본키가 되므로 유일성을 만족한다.
  • @GeneratedValue : 엔티티의 기본 키 값 생성 전략을 지정한다. strategy는 고유번호를 생성하는 옵션으로, AUTO가 디폴트로 설정되어있다.
    @GeneratedValue(strategy = GenerationType.AUTO) //적절한 전략을 자동으로 선택
    @GeneratedValue(strategy = GenerationType.IDENTITY) //데이터베이스의 ID 자동 증가. MySQL의 AUTO_INCREMENT와 유사
    이 외에도 SEQUENCE, TABLE의 옵션이 있다.
  • @Column : 컬럼의 세부 설정 시 명시하기 위해 사용한다. 다양한 옵션이 존재한다. 여러 옵션을 함께 사용할 수도 있다.
    • length : 컬럼의 길이 설정(기본값 255)
    • columnDefinition : 컬럼의 속성 정의. ex) @Column(columnDefinition = "TEXT")
    • name : 필드가 매핑될 데이터베이스 테이블의 컬럼 이름 지정. (기본적으로 필드 이름이 사용됨)
    • unique : 컬럼의 유니크 제약조건 지정. (기본값 false)
    • nullable : 컬럼의 null 허용 여부 지정. (기본값 true)
    • insertable : 엔티티가 생성되어 데이터베이스에 삽입될 때, 해당 컬럼에 값이 삽입되는지 지정. (기본값 true.)
    • updatable : 엔티티가 수정되어 데이터베이스에 업데이트될 때, 해당 컬럼의 값이 업데이트되는지 지정. (기본값 true)

👉🏻테이블의 컬럼명
엔티티에서 실제 테이블 칼럼명이 설정될 때, 대소문자 형태의 카멜케이스 이름은 모두 소문자로 변경되고 언더바(_)로 단어가 구분되어 생성된다.

👉🏻JPA 어노테이션 참고 : https://velog.io/@aiden_lee/Spring-BootJPA-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98

profile
파인애플 좋아하세요?

0개의 댓글