QueryDsl MongoDB-访问深度嵌套的对象以进行查询

use*_*934 8 java querydsl spring-data-mongodb spring-boot

使用时,尝试访问嵌套对象时遇到问题BooleanBuilder。我已经读过默认值是2级,但是对于我的用例,我需要访问3级嵌套对象。因此,我已经添加@QueryInit了许多其他答案中指出的内容。但是我仍然无法访问它。这是我的代码:

@Document
public class Order implements Serializable {

     @QueryInit(*.*)
     private Item item;

}

public class Item implements Serializable {
   private Details details;
}

public class Details implements Serializable {
   private String name;
}

public static BooleanExpression name(String name) {
  QOrder order = QOrder.order;
  return order.item.details.name.eq(name)
}
Run Code Online (Sandbox Code Playgroud)

我有QOrderQItem生成了类并且可以正常工作。但是details.description给出了错误,因为QDetails未生成类。我如何使其生成QDetails

Dea*_*ltz 0

我看到的第一个问题是您在 return 语句上漏掉了一个分号,这可能会导致您出现一些其他问题。生成的方式QDetails是首先引用查询,并从指定的结果中请求详细信息。