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

时间:2019-10-01 01:38:13

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

使用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)
}

我生成了QOrderQItem类,并且工作正常。但是由于未生成QDetails类,所以details.description给出了错误。如何使它生成QDetails

1 个答案:

答案 0 :(得分:0)

我看到的第一个问题是您错过了return语句中的分号,这可能导致您遇到其他问题。生成QDetails的方法是先引用查询,然后从分配的结果中请求详细信息。

希望这会有所帮助!