노빠꾸 개발일지/SPRING

[Spring Data JPA] 쿼리 메소드 @Query 어노테이션 JPQL 쿼리

No Backing 2023. 6. 15. 00:43
반응형

👉 Spring Data Jpa 쿼리메소드 메소드 이름으로 쿼리

2023.06.14 - [노빠꾸 개발일지/SPRING] - [Spring Data JPA] 쿼리 메소드(Query Method) 방식 알아보기

 

[Spring Data JPA] 쿼리 메소드(Query Method) 방식 알아보기

👉 Spring Data Jpa 쿼리메소드 @Query 어노테이션 이용 방식 2023.06.15 - [노빠꾸 개발일지/SPRING] - [Spring Data JPA] 쿼리 메소드 @Query 어노테이션 JPQL 쿼리 [Spring Data JPA] 쿼리 메소드 @Query 어노테이션 JPQL

nobacking.tistory.com

 

 

이번 피드에서는 쿼리메소드 방식에서 @Query 어노테이션을 이용한 JPQL쿼리를 알아보겠습니다.

 

@Query 어노테이션을 이용한 JPQL 쿼리

@Query 어노테이션을 이용하여 JPQL쿼리를 하는 방법

 

예제)

 

MemberEntity.java

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MemberEntity {
    @Id
    @GeneratedValue
    @Column(name = "user_no")
    private Long userNo;
    @Column(name = "user_name")
    private String userName;
    @Column(name = "user_addr")
    private String userAddr;
}

 

MemberRepository.java

public interface MemberRepository extends JpaRepository<MemberEntity, Long> {

    @Query("select m from MemberEntity  m where m.userName = :username")
    List<MemberEntity> findMemberList(@Param("username") String userName);

}

 

위와 같이 메소드에 @Query 어노테이션을 이용하여 SQL을 직접 작성하는 방식으로, 데이터를 조회할 수 있다.

 

@Query어노테이션을 이용하여 쿼리를 작성하는 방식에서 파라미터는 @Param()을 이용하여 전달해 주어야 한다.

ex) @Param("username") String userName

 

메소드이름으로 쿼리를 할 경우 메소드명이 길어질 수 있는데, @Query 어노테이션을 이용하여 쿼리를 하게되면 메소드명을 간결하게 유지할 수 있다.

 

반응형