Back-end/Spring

[SpringBoot] Spring Data JPA로 게시판 만들기(1) - domain, repository 생성

poppy 2020. 11. 16. 13:41
반응형

1. 의존성 등록

먼저 Spring Data Jpa를 사용하기 위해 의존성들을 등록해주겠습니다!

build.gradle 파일의 dependencies에 다음 문장을 추가합니다

compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('com.h2database:h2')

JPA의 테스트를 위한 데이터베이스로 H2를 사용하겠습니다

 

2. 다음과 같이 패키지와 파일들을 만들어줍니다

3. Posts - domain

도메인은 무언가 구현하기 위한 요소를 담은 것으로 게시판의 경우, 제목, 글쓴이, 내용, 댓글 등을 담고 있는 것을 말합니다. Posts클래스는 Entitiy클래스라고도 합니다

@Getter
@NoArgsConstructor
@Entity
public class Posts {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id; //pk

    @Column(length = 500, nullable = false)
    private String title; //제목

    @Column(columnDefinition = "TEXT", nullable = false)
    private String content; //내용

    private String writer; //글쓴이

    @Builder //생성자
    public Posts(String title, String content, String writer) {
        this.title = title;
        this.content = content;
        this.writer = writer;
    }
}

@Getter - Get메소드를 말합니다

@NoArgsConstructor - 기본 생성자를 자동으로 추가해줍니다

@Entity - 테이블과 링크될 클래스임을 나타냅니다

@Id - 테이블의 PK라는 것을 나타냅니다

@GeneratedValue(strategy = GenerationType.IDENTITY) - @GeneratedValue()는 PK를 어떻게 생성할지를 설정합니다. "strategy = GenerationType.IDENTITY"은 id를 null로 하면 알아서 DB가 auto_increment 해줍니다

@Column() - 테이블의 칼럼을 나타냅니다. 선언하지 않더라도 클래스의 필드는 모두 자동으로 칼럼이 됩니다. 선언하는 경우는 기본값 외에 추가 옵션이 있을 때 선언하여 필요한 옵션을 사용합니다

@Builder - 클래스의 빌더 패턴 클래스를 생성한다는 의미입니다

 

빌더 패턴이 무엇인지 궁금하시다면 다음 링크를 참조하세요!

soohyun6879.tistory.com/27?category=886455

 

자바 빌더 패턴(Builder Pattern)

빌더패턴 빌더패턴은 디자인 패턴 중 하나로써 생성과 표현을 분리한 것 입니다. 생성자에 들어갈 매개 변수를 받고 모든 매개 변수를 받은 뒤에 통합해서 한 번에 사용을 합니다. 빌더패턴을

soohyun6879.tistory.com

4. PostsRepository - repository

public interface PostsRepository extends JpaRepository<Posts, Long> {
}

클래스를 만든 후 JpaRepository를 상속받으면 됩니다! JpaRepository<Entity클래스, PK타입>으로 상속을 받습니다. 상속받으면 기본적인 CRUD 기능이 자동으로 제공됩니다

반응형