LUMI_dev
Spring Data JPA - #4 Query Methods란? 본문
스파르타 코딩 클럽 | 자바 심화 과정/Spring Master (입문 주차)
Spring Data JPA - #4 Query Methods란?
luminous_dev 2025. 2. 4. 11:02Query Methods
: Spring Data JPA에서는 메서드 이름으로 SQL을 생성할 수 있는 Query Methods 기능을 제공
테이블에서 요청하고자 하는 SQL을 아래와 같은 method이름을 사용해서 선언할 수 있음
1. MemoRepository.java에서 작성하기
package com.sparta.sparta_memo_project.repository;
import com.sparta.sparta_memo_project.dto.MemoRequestDto;
import com.sparta.sparta_memo_project.dto.MemoResponseDto;
import com.sparta.sparta_memo_project.entity.Memo;
import jakarta.persistence.EntityManager;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
//@Repository는 자동으로 제공되므로 없애주기 + 안 달아도 이제 Bean 등록도 됨
public interface MemoRepository extends JpaRepository<Memo, Long> {
//Long = @Id(PK) 의 데이터 형식
List<Memo> findAllByOrderByModifiedAtDesc();
//find (select) All(모두) ByOrderBy (정렬) Modified(Modified 필드로) AtDesc (내림차순)
}
2. 서비스 단에서도 해당 내용 사용
MemoRepository.java
findAllByOrderByModifiedAtDesc(); / findAllByUsername();
package com.sparta.sparta_memo_project.repository;
import com.sparta.sparta_memo_project.dto.MemoRequestDto;
import com.sparta.sparta_memo_project.dto.MemoResponseDto;
import com.sparta.sparta_memo_project.entity.Memo;
import jakarta.persistence.EntityManager;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
//@Repository는 자동으로 제공되므로 없애주기 + 안 달아도 이제 Bean 등록도 됨
public interface MemoRepository extends JpaRepository<Memo, Long> {
//Long = @Id(PK) 의 데이터 형식
List<Memo> findAllByOrderByModifiedAtDesc();
//find (select) All(모두) ByOrderBy (정렬) Modified(Modified 필드로) AtDesc (내림차순)
List<Memo> findAllByUsername(); //Username필드만 가져와라
List<Memo> findAllByUsername(String username); //파라메터로 어떤 username의 게시물을 가져올지도 지정 가능
//findAll(모두 가져올건데) ByUsername (Where~ 유저네임인 것만 가져와라)
}
'스파르타 코딩 클럽 | 자바 심화 과정 > Spring Master (입문 주차)' 카테고리의 다른 글
Spring Data JPA - #3. JPA Auditing (자동으로 시간 값을 넣어주는 기능)적용하는 법(@EnableJpaAuditing) (0) | 2025.02.04 |
---|---|
Spring Data JPA - #2 Spring Data JPA 사용방법_JDBC 없애기(findAll, findById,update,delete) (0) | 2025.02.04 |
JDBC란? (0) | 2025.02.04 |
Spring Data JPA - #1 Spring Data JPA란? (1) | 2025.02.04 |
SpringBoot JPA_#1-3. 영속성 컨텍스트와 트랜잭션의 생명 주기_ (0) | 2025.02.04 |