[Spring] Jpa Repository 사용하기
- 코딩/Spring
- 2021. 9. 15.
[Spring] Jpa Repository 사용하기
Entity
데이터베이스에 저장하기 위하여 사용자가 정의한 클래스가 필요한데
그 클래스를 Entity라고 한다.
RDBMS에서 Table을 객체화 시킨 것
@NoArgsConstructor
@Getter
@Entity
@Setter
public class Comment extends Timestamped {
@GeneratedValue(strategy = GenerationType.Auto)
@Id
private Long id;
@Column(nullable = false)
private String comment;
@Column(nullable = false)
private Long poster_id;
@Id
해당 컬럼은 pk이며 @GeneratedValue 어노테이션은 해당 Id값을 어떻게 자동생성 할지 전략을 말한다.
Repository
import org.springframework.data.jpa.repository.JpaRepository;
public interface CommentRepository extends JpaRepository<Comment, Long> {
}
Entity의 기본적인 CRUD가 가능하도록 JpaRepository 인터페이스를 기본적으로 제공하고 있으며,
JpaRepository 인터페이스를 상속하기만 하면 된다.
기본 기능
method | 기능 |
findAll() | 전체 레코드 불러오기(정렬, 페이징 가능) |
findOne() | pk로 레코드 한건 찾기 |
save() | 레코드 저장(inster, update) |
count() | 레코드 갯수 |
delete() | 레코드 삭제 |
기본 기능 외에 다른 기능을 추가하고 싶으면 규칙에 맞게 메서드를 추가해주면 된다.
ex)
package com.example.mbti.repository;
import com.example.mbti.model.Comment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface CommentRepository extends JpaRepository<Comment, Long> {
List<Comment> findByPoster_id(@Param("poster_id")Long poster_id);
}
findBy 메소드를 추가한 예시이다.
2021.09.15 - [코딩/Spring Data Jpa] - [Jpa] Timestamped LocalDateTime format 변경
2021.09.15 - [코딩/node.js] - node.js를 활용한 Http-server 구축
'코딩 > Spring' 카테고리의 다른 글
필드주입과 생성자주입의 차이, 장단점(생성자 주입 vs 필드 주입) (0) | 2022.05.05 |
---|---|
[SpringSecurity] JWT 구현 시 javax/xml/bind/DatatypeConverter (0) | 2022.01.13 |
[Spring] 서비스 기동 시키는 방법 3가지 (0) | 2021.10.01 |
[Spring] Could not locate ordinal parameter [1], expecting one of [] 문제 (0) | 2021.09.15 |
[Spring] Mybastis 연결 시 java.lang.IllegalArgumentException 에러 (0) | 2020.03.16 |