👉 Spring Data Jpa 쿼리메소드 @Query 어노테이션 이용 방식
2023.06.15 - [노빠꾸 개발일지/SPRING] - [Spring Data JPA] 쿼리 메소드 @Query 어노테이션 JPQL 쿼리
[Spring Data JPA] 쿼리 메소드 @Query 어노테이션 JPQL 쿼리
이번 피드에서는 쿼리메소드 방식에서 @Query 어노테이션을 이용한 JPQL쿼리를 알아보겠습니다. @Query 어노테이션을 이용한 JPQL 쿼리 @Query 어노테이션을 이용하여 JPQL쿼리를 하는 방법 예제) MemberEn
nobacking.tistory.com
이번 피드에서는 Spring Data JPA 쿼리 메소드에 대해 간단히 정리해 보겠습니다.
메소드 이름으로 쿼리
메소드 이름으로 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> {
List<MemberEntity> findByUserName(String userName);
Long countByUserAddr(String userAddr);
List<MemberEntity> findDistinctByUserName(String userName);
List<MemberEntity> findTopByUserName(String userName);
}
1. 조회 기능 : findBy...
List<MemberEntity> findByUserName(String userName);
2. 카운트 조회 기능 : countBy...
Long countByUserAddr(String userAddr);
3. 중복제거 조회 기능 : findDistinctBy...
List<MemberEntity> findDistinctByUserName(String userName);
4. Limit 조회 기능 : findFirst ..., findFirst3... , findTop..., findTop3...(숫자를 붙이면 해당 개수만큼 조회됨)
List<MemberEntity> findTopByUserName(String userName);
주로 사용되는 대표적인 기능 몇개를 정리해 보았는데, Spring Data JPA에서는 이외에도 많은 기능들을 제공하고 있다.
아래의 공식문서에서 참고하면 된다.
Spring 공식 문서 참고 URL
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
Spring Data JPA - Reference Documentation
Example 121. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") void del
docs.spring.io
'노빠꾸 개발일지 > SPRING' 카테고리의 다른 글
[스프링 트랜잭션] 스프링 트랜잭션 기본 (0) | 2024.08.29 |
---|---|
[Spring Data JPA] 쿼리 메소드 @Query 어노테이션 JPQL 쿼리 (0) | 2023.06.15 |
[Spring Boot] 스프링부트 H2 DB 연결해보기 (0) | 2023.06.13 |
[스프링] 의존성 주입(Dependency Injection) 방법 (0) | 2023.06.12 |
스프링 프레임워크(Spring Framework)와 스프링 부트(Spring Boot) (0) | 2023.06.03 |