Spring/스프링 데이터 JPA
[스프링 데이터 JPA] 스프링 데이터 JPA 3. 쿼리 메서드
주멘이
2021. 1. 16. 22:50
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
Spring Data JPA - Reference Documentation
Example 109. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") v
docs.spring.io
스프링 데이터 JPA에서 지원하는 키워드
- And, Or
- Is, Equals
- LessThan, LessThanEqual, GreaterThan, GreaterThanEqual
- After, Before
- IsNull, IsNotNull, NotNull
- Like, NotLike
- StartingWith, EndingWith, Containing
- OrderBy
- Not, In, NotIn
- True, False
- IgnoreCase
쿼리 찾아쓰기
- 엔티티에 정의한 쿼리 찾아 사용하기 JPA Named 쿼리
- @NamedQuery
- @NamedNativeQuery
- 리포지토리 메서드에 정의한 쿼리 사용하기
- @Query
- @Query(nativeQuery=true)
@NamedQuery
@NamedQueries({
@NamedQuery(name = "all_post", query = "SELECT p FROM Post AS p"),
@NamedQuery(name = "Post.findByTitle", query = "SELECT p FROM Post AS p WHERE p.title = ?1")
})
@Entity
public class Post extends AbstractAggregateRoot<Post> {}
@Query
@Query("SELECT p FROM Post AS p WHERE p.title = ?1")
List<Post> findByTitle(String title);