더 유연한 질의를 수행하기 위해 spring-data-mongodb와 querydsl-mongodb을 사용하고 있습니다.Spring MongoDB + @DBRef 관련 객체에 의한 QueryDSL 질의
내 응용 프로그램에는 사용자와 주문이 있습니다. 사용자는 여러 개의 주문을 가질 수 있습니다, 그래서 내 모델은 다음과 같습니다 당신이 볼 수 있듯이
public class User {
@Id
private String id;
private String username;
//getters and setters
}
public class Order {
@Id
private String id;
@DBRef
private User user;
//getters and setters
}
는 사용자와 주문 사이가 일대 다 관계가있다. 각 주문은 사용자에게 할당되며 사용자는 @DBRef 공용 사용자 사용자 속성에 저장됩니다.
이제 사용자에게 10,000 개의 주문이 있다고 가정 해 보겠습니다.
특정 사용자에게 속한 모든 주문을받는 쿼리를 만들 수 있습니까?
public interface OrderRepository extends MongoRepository<Order, String>,
QueryDslPredicateExecutor<Order> {
}
나는이 솔루션을 시도했지만 아무것도 반환 나던 :
QOrder order = new QOrder("order");
Pageable pageable = new PageRequest(0, 100);
return userRepository.findAll(order.user.id.eq(anUserId), pageable);
내가 의해 주문을 조회 할 수있는 서비스를 구축하려는 때문에 querydsl을 사용할 필요를
나는 OrderRepository이 userid보다 더 많은 prameters. 예를 들어 특정 사용자 이름을 가진 사용자에게 속한 모든 주문을 받고 싶습니다.
방금 관련 요청을 추가했습니다. https://github.com/querydsl/querydsl/pull/804 –
@ TimoWestkämper 다음 요청을 할 수 없습니다. userRepository.findAll (order.user.username.eq (someUsername), 페이지 가능); 참조 된 ID userRepository.findAll (order.user.id.eq (anUserId), pageable)과 잘 작동합니다. – Philippe
@Philippe 나는 같은 문제가있다. 그 해결책을 찾았습니까? –