Mission
Comment 엔티티와 리파지터리를 만들고 이를 테스트 하시오
-일대다(게시글 입장), 다대일(댓글 입장) 관계
-crud repository가 아닌 JPA repository를 활용
JPA repositoy 는 crud repository를 확장한 Paging&Sorting repository를 확장한 것으로 데이터 crud 뿐만 아니라 일정 페이지의 데이터 조회 및 정렬 기능을 제공한다.
-댓글 엔티티
Comment 엔티티 만들기
Comment 엔티티는 Article 엔티티와 다대일 관계이다.
@JoinColumn 을 통해 FK 를 설정할 수 있다.
package com.example.firstproject.entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.persistence.*;
@Entity
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
//댓글과 부모 게시글과의 관계, 해당 댓글 엔티티 여러개가, 하나의 Article에 연관된다
@ManyToOne
@JoinColumn(name = "article_id") // "article_id" 칼럼에 Article의 대표값을 지정
private Article article;
@Column
private String nickname;
@Column
private String body;
}
-댓글 레파지토리
//특정 게시글의 모든 댓글 조회를
1. 쿼리 어노테이션을 통해 sql을 직접 작성한것이고
//특정 닉네임의 모든 댓글 조회를
2. 네이티브 쿼리 XML로 작성 -> <!-- 구글링 "orm native query orm.xml example" -->
/resources/META-INF/orm.xml
-레파지토리와 테스트 A
-레파지토리와 테스트 B
-요약
댓글 인테티를 Comment 엔티티로 만들기
Comment 엔티티는 Article 엔티티와 다대일 관계이다.
@JoinColumn 을 통해 FK 를 설정할 수 있다.
레퍼지토리에 쿼리 어노테이션을 통해 sql을 직접 작성한 방법과 네이티브 쿼리 XML로 작성하는 방법을 배웠다.
🔥 구글링 훈련하기
- 일대다 다대일 관계
- @ManyToOne
- @JoinColumn
- JpaRepository
- @Query
- JPA native query orm xml
- @DataJpaTest @SpringBootTest 비교
내용참고
https://www.youtube.com/channel/UCpW1MaTjw4X-2Y6MwAVptcQ
'Spring Boot > Spring Boot 입문 홍팍' 카테고리의 다른 글
[Spring boot] (23) 댓글 서비스와 컨트롤러 (0) | 2023.08.18 |
---|---|
[Spring boot] (21) 테스트 작성하기 (0) | 2023.08.18 |
[Spring boot] (20) 서비스 계층과 트랜잭션 (0) | 2023.08.18 |
[Spring boot] (19) Rest Controller와 HTTP (0) | 2023.08.09 |
[Spring boot] (18) Rest API 와 JSON (0) | 2023.08.08 |