[SPRING] Spring Data JPA_Query Method

라미·2024년 2월 26일

spring

목록 보기
12/17
post-thumbnail

Query Method

Spring Data JPA에서는 메서드 이름으로 SQL을 생성할 수 있는 기능.

paRepository 인터페이스에서 해당 인터페이스와 매핑되어있는 테이블에 요청하고자하는 SQL을 메서드 이름을 사용하여 선언할 수 있다.
public interface MemoRepository extends JpaRepository<Memo, Long> {  //JpaRepository 등록

    // db에 요청하고자 하는 sql 을 메서드 이름을 사용해서 선언할 수 있다.
    List<Memo> findAllByOrderByModifiedAtDesc(); // 전체 조회 order by modifiedAt 기준으로 내림차순
   List<Memo> findAllByUsername(String username); // where 조건 주는 법, 메서드에 조건 넣어주기 select * from where username = '';
}

Query Method 기능을 사용하면 sql을 동적으로 처리할 수 있다!


LIKE 조회

숙제 때문에 like 쿼리 조회하는 법을 알아 보았다.

like 'TEXT%'

List<User> findByNameStartingWith(String name);

like '%TEXT'

List<User> findByNameEndingWith(String name);

like '%TEXT%'

List<User> findByNameLike(String name);

호출 코드 (파라미터에 직접 '%test%'를 넣어줘야한다.)
userRepository.findByNameLike("%test%")

→ %% 직접 넣어줘야하는걸 모르고 한참 고생했다. 휴...;;

Contains

List<User> findByNameContains(String name);
 
호출 코드 (파라미터에 직접 '%test%'를 넣어줄 필요가 없다.)
userRepository.findByNameLike("test")

참고 : https://devfunny.tistory.com/570
공식문서 : https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html


SPRING.JPA.OPEN-IN-VIEW warn 이 떠서 뭐야!! 하고 있었는데 찾아보니 application.properties

spring.jpa.open-in-view=false

만 추가해주면 아주 간단하게 해결되는 문제였다!! 해결완!!

0개의 댓글