[SPRING] Spring 데이터 JPA : query ManyToMany
SPRINGSpring 데이터 JPA : query ManyToMany
엔티티 사용자 및 테스트가 있습니다.
@Entity
public class User {
private Long id;
private String userName;
}
@Entity
public class Test {
private Long id;
@ManyToMany
private Set<User> users;
}
사용자 엔티티가 모든 테스트를 수행 할 수 있습니다.
public interface TestRepository extends JpaRepository<EventSettings, Long> {
List<Test> findAllByUsers(User user);
}
하지만 userName에 의해 모든 테스트를 찾는 데 사용할 수있는 쿼리는 무엇입니까?
해결법
-
==============================
1.다음 메소드 서명을 통해 원하는 결과를 얻을 수 있습니다.
다음 메소드 서명을 통해 원하는 결과를 얻을 수 있습니다.
List<Test> findByUsers_UserName(String userName)
이것은 Spring Data JPA의 속성 표현식 기능을 사용하고 있습니다. 서명 Users_UserName은 JPQL x.users.userName으로 변환됩니다. 이것은 주어진 사용자 이름에 대한 정확한 일치를 수행합니다.
-
==============================
2.다른 답변은 함수 명명 기법을 사용하여 원하는 기능을 달성하는 방법을 보여줍니다. 다음과 같이 @Query 어노테이션을 사용하여 동일한 기능을 구현할 수 있습니다.
다른 답변은 함수 명명 기법을 사용하여 원하는 기능을 달성하는 방법을 보여줍니다. 다음과 같이 @Query 어노테이션을 사용하여 동일한 기능을 구현할 수 있습니다.
@Query("select t from Test t join User u where u.username = :username") List<Test> findAllByUsername(@Param("username")String username);
from https://stackoverflow.com/questions/33438483/spring-data-jpa-query-manytomany by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트 프로젝트에 메소드 기반 보안을 어떻게 추가합니까? (0) | 2019.01.02 |
---|---|
[SPRING] Spring JpaRepository - 엔티티 분리 및 연결 (0) | 2019.01.02 |
[SPRING] Spring RestTemplate을 사용하여 페이지 <Entity> 응답을 소비하는 방법 (0) | 2019.01.02 |
[SPRING] Spring 프레임 워크 4.x와 Hibernate 5.2 통합하기 (0) | 2019.01.02 |
[SPRING] RestTemplate에서 응답 헤더를 읽으려면 어떻게해야합니까? (0) | 2019.01.02 |