그냥
@Query("select m from Member m where m.username = :username and m.age = :age")
List<Member> findUser(@Param("username") String username, @Param("age") int age);
이렇게 곧바로 쓰는거다.
이거는 네임드쿼리를 곧바로 쓰는거라고 보면 된다.
@Query("select m from Member m where m.username = :username and m.age = :age")
List<Member> findUser(@Param("username") String username, @Param("age") int age);
@Query("쿼리와 :파라미터")
List<엔티티> 메소드명(@Param("쿼리상파라미터명") 타입 파라미터값);
그래서 이것도 네임드쿼리와 마찬가지로 로딩 시점에 sql로 만들기 위해 다 파싱을 미리 해 놓는데, 거기서 문법오류가 발생하면 오류를 발생시킨다. unnamed 네임드쿼리? 음.. 그냥 unnamed쿼리?
이건 실무에서 자주 씀.
메소드명으로 자동쿼리생성은 하다보면 메소드명 자체가 엄청 길어질 때가 있는데,
그 때 그냥 간단한 메소드 이름과 함께 저렇게 쿼리로 풀어서 쓰면 됨.
메소드명으로 자동쿼리 생성은 간단한거 할 때,
좀 조건이 길면 그냥 저렇게 쿼리로 풀어서.
지금까지 정적 쿼리였고, 동적쿼리는 QueryDSL로 해야 함.
'스프링데이터 + JPA > 스프링 데이터 JPA' 카테고리의 다른 글
13. 파라미터 바인딩 (0) | 2023.11.20 |
---|---|
12. Dto나 테이블 중 특정 값만 조회해 오기 (0) | 2023.11.20 |
10. JPA 네임드 쿼리 (0) | 2023.11.20 |
9. 메소드 이름으로 쿼리 생성 (0) | 2023.11.20 |
8. 공통 인터페이스 분석 (0) | 2023.11.19 |