6.2 블로그 엔티티 구성

SummerToday·2024년 2월 7일
1
post-thumbnail
post-custom-banner

엔티티 구성

  • 엔티티와 매핑되는 테이블 구조


  • 코드 작성

// domain - Article.java

 @Entity // 엔티티로 지정 
 @Getter
 @NoArgsConstructor // 엔티티는 반드시 기본 생성자 필요. + 의존성 주입
 public class Article{
    @Id // id 필드를 기본 지정
    @GeneratedValue(strategy = GenerationType.IDENTITY) // 기본키 자동으로 1씩 증가
    @Column(name = "id", updatable = false)
    private Long id;

    @Column(name = "title", nullable = false) // 'title'이라는 not null 컬럼과 매핑
    private String title;

    @Column(name = "content", nullable = false)
    private String content;

    @Builder // 빌더 패턴으로 객체 생성
    public Article(String title, String content) {
        this.title = title;
        this.content = content;
    }
  }

임포트 관련 오류 메시지는 Alt + Enter를 눌러 첫 번째 패키지를 선택하면 된다.

보통 DB의 테이블과 매핑되는 클래스들을 모아놓은 패키지를 Domain 또는 Entity로 칭한다.

  • @Builder
    롬복에서 지원하는 애너테이션. 생성자 위에 입력시 빌더 패턴 방식으로 객체를 생성할 수 있다.

    • 빌더 패턴 방식
      어느 필드에 어떤 값이 들어가는 지 명시적으로 파악 가능.
        new Article("abc", "def");  // 빌더 패턴 사용 x.  
        
         Article.builder()           // 빌더 패턴 사용 o. -> 가독성 향상.
             .title("abc")
             .content("def")
             .build();  

리포지토리 생성

  // repository - BlogRepository.java
  
  public interface BlogRepository extends JpaRepository<Article, Long> {
  }

JpaRepository<상속받을 엔티티, PK 타입>을 상속 받아 해당 엔티티에 대해 JpaRepository에서 제공하는 여러 메소드를 사용할 수 있도록 한다.




해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽
profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글