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
4. PostsRepository - repository
public interface PostsRepository extends JpaRepository<Posts, Long> {
}
클래스를 만든 후 JpaRepository를 상속받으면 됩니다! JpaRepository<Entity클래스, PK타입>으로 상속을 받습니다. 상속받으면 기본적인 CRUD 기능이 자동으로 제공됩니다
'Back-end > Spring' 카테고리의 다른 글
[SpringBoot] Spring Data JPA로 게시판 만들기(4) - 수정/조회 API (0) | 2020.11.22 |
---|---|
[SpringBoot] Spring Data JPA로 게시판 만들기(3) - 등록 API (0) | 2020.11.16 |
[SpringBoot] Spring Data JPA로 게시판 만들기(2) - repository테스트 코드 작성 (0) | 2020.11.16 |
[SpringBoot] 롬복(Lombok) 적용하기 (0) | 2020.11.15 |
[SpringBoot] Controller 만들고 테스트 코드 작성해보기 (0) | 2020.11.09 |