엔티티 클래스 개발1(고려사항)

Mina Park·2022년 9월 18일
0

엔티티 클래스 개발시 고려사항

1. @Getter, @Setter

  • 이론적으로는 Setter는 닫아두는 것을 권장
    • 데이터가 어디서 변경되었는지 추적하기가 힘들어지기 때문
    • 변경 지점이 명확해지도록 비즈니스 메소드를 별도로 제공(유지보수 고려)

2. 엔티티의 식별자

  • 엔티티의 식별자는 "id"를 사용하고, PK컬럼명은 "member_id"로 사용
    • 테이블은 관례상 테이블명 + id

3. @ManyToMany 사용 지양

  • 실무에서는 일대다, 다대일 맵핑으로 풀어서 사용

4. Enum

  • @Enumerated(EnumType.STRING)
  • 향후 변경 가능성을 고려해서 꼭 STRING 타입 사용 권장

5. 값타입은 불변객체

  • @Setter는 제거
  • 생성자에서 값을 모두 초기화해서 변경 불가능한 클래스 생성
  • JPA 스펙상 엔티티, 임베디드 타입은 자바 기본 생성자를 public 또는 protected로 설정
    • protected로 설정하는 것이 더 안전

Q. hibernate의 테이블 create 쿼리를 DDL로 바로 사용해도 될까?

  • 참고만해서 수정한 뒤 사용하는 것을 권장

0개의 댓글