본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


JPA/Spring data JPA

Spring Data JPA query method 기능

반응형

query method 기능

- Spring Data JPA에 구현되지 않은 기능을 구현하고 싶을때 query method를 사용한다.

- 메서드 이름을 통해서 쿼리를 만들어낸다.

 

 

 

위 메서드는  순수 JPA로 유저이름과 나이를 파라미터로 받아 

유저이름이 일치하고 나이가 파라미터로 받은 나이 보다 많은 유저를 찾아내는 메서드이다

위는 spring data jpa에서  querymethod기능으로 만든 메서드다 

메서드명을 통해 쿼리가 작성되고 파라미터가 바인딩 된다. 

정해진 프로퍼티를 통해 작동하기 때문에 맞춰진 형식에 맞게 메소드명을 만들어야한다.

 

정해진 프로퍼티들

조회: find ... By ,read...By, query...By get...By
count: count ...By  -> long 타입 반환

exist: exsits...By     -> boolean 타입 반환

삭제:delete ... By   ,remove...By

 

 

더 자세한 내용은 아래 링크에서  

docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods

Table 3. Supported keywords inside method names를 검색하면 나와있다

xml을 통해 커스텀으로 프로퍼티를 만드는 것도 가능하다 

findBy 뒤로 Username , Age GreaterThan 이  쿼리로 만들어진다.

 

 

만들어진 쿼리 이다 username과 age가 where절로 들어갔다.

 

장점

-짤막한 쿼리이 필요할때 따로 쿼리를 작성할 필요없이 인터페이스에 메서드만 올려놔도 메소드이름을 통해 자동으로 쿼리가 생성된다. 

주의

-엔티티 필드명이 변경되면 인터페이스 메서드명도 같이 변경해 줘야한다.  

 

 

반응형

'JPA > Spring data JPA' 카테고리의 다른 글

Spring Data JPA 반환타입  (0) 2020.11.20
Spring Data JPA @Query -컬렉션 파라미터 바인딩  (0) 2020.11.20
Spring Data JPA @Query-엔티티 조회  (0) 2020.11.20
Spring Data JPA Named query 기능  (0) 2020.11.20
Spring Data JPA  (0) 2020.11.20