Spring querydsl谓词:关系支持

时间:2017-10-25 08:14:10

标签: java spring spring-boot spring-data querydsl

我有一个与Contact有OneToOne关系的Client实体。 如果我想获取客户端名称,我需要写:

 client.getContact().getLastName()

我使用querydsl lib来过滤我的春季启动应用程序中的客户端列表

 /api/clients?contact.lastName=Doe

我的控制器签名:

 public ResponseEntity<ResponseListDTO> getClients (
        @QuerydslPredicate(root = Client.class) Predicate predicateClient,
        Pageable pageable)

效果很好:谓词创建得很好,过滤器也可以。

但现在我需要过滤两个关系级别内的字段:

 client.getContact().getAddress().getCity()

所以我不想写:

 /api/clients?contact.address.city=XXX

但它没有与@QuerydslPredicate映射。没有错误,但@QuerydslPredicate谓词仍为空(如果没有过滤器)。

谢谢!

1 个答案:

答案 0 :(得分:0)