엔티티와 매핑되는 테이블 구조
코드 작성
// 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에서 제공하는 여러 메소드를 사용할 수 있도록 한다.