[SPRING] 스프링 데이터 jpa와 querydsl로 왼쪽 결합
SPRING스프링 데이터 jpa와 querydsl로 왼쪽 결합
나는 스프링 데이터 jpa와 querydsl을 사용하고 있고 왼쪽에 두 개의 테이블을 조인하는 간단한 좋은 쿼리를 작성하는 방법에 갇혀있다. Project 엔티티와 OneToMany 관계가있는 Task 엔티티가 Project에 정의되어 있다고 가정합니다. 다음과 같이하고 싶습니다.
select * from project p left join task t on p.id = t.project_id where p.id = searchTerm
select * from project p left join task t on p.id = t.project_id where t.taskname = searchTerm
JPQL에서는 다음과 같아야합니다.
select distinct p from Project p left join p.tasks t where t.projectID = searthTerm
select distinct p from Project p left join p.tasks t where t.taskName = searthTerm
나는 JpaRepository와 QueryDslPredicateExecutor를 확장하는 ProjectRepository 인터페이스를 가지고있다. 그건 내가 방법에 대한 액세스를 제공합니다 :
Page<T> findAll(com.mysema.query.types.Predicate predicate, Pageable pageable)
나는 왼쪽 join이 새로운 JPAQuery (entityManager)를 생성함으로써 쉽게 달성 될 수 있음을 안다. 하지만 스프링 데이터 jpa를 명시 적으로 주입 한 엔티티 관리자가 없습니다. 왼쪽 조인을 사용하여 술어를 작성하는 좋은 방법이 있습니까? 여기있는 누군가가 이것을 경험하고 소원을 빌릴 수 있기를 바랍니다. 고맙습니다.
프레이.
해결법
-
==============================
1.작업에 대한 제약 조건을 표현하려면 다음과 같이하면됩니다.
작업에 대한 제약 조건을 표현하려면 다음과 같이하면됩니다.
QProject.project.tasks.any().id.eq(searchTerm)
대신 왼쪽 조인을 통해 특정 작업의 사전로드를 표현하려면 술어를 통해이를 표현할 수 없습니다. Querydsl의 술어는 where, join-on 및 쿼리의 일부분에 대한 부울 식입니다.
from https://stackoverflow.com/questions/23077155/left-join-with-spring-data-jpa-and-querydsl by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] jms-spring 통합에서 메시지 리스너 빈에 메시지 선택기를 삽입하는 방법은 무엇입니까? (0) | 2019.05.07 |
---|---|
[SPRING] Spring 3.1 환경 설정 : 환경이 주입되지 않음 (0) | 2019.05.07 |
[SPRING] @Configuration 및 @Controller 클래스를 주석 처리했습니다. 리팩토링에 도움이 필요하다. (0) | 2019.05.06 |
[SPRING] Spring MVC 테스트의 빈 예외 바디 (0) | 2019.05.06 |
[SPRING] spring-boot를 사용할 때 spring-boot 명령 줄 속성을 사용할 수 있습니까? (0) | 2019.05.06 |