我有一个与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谓词仍为空(如果没有过滤器)。
谢谢!
答案 0 :(得分:0)
在此处找到@QueryInit
的解决方案:http://www.querydsl.com/static/querydsl/4.0.7/reference/html_single/#d0e2245