QueryDsl MongoDB - доступ к глубоко вложенному объекту для запросов - PullRequest
8 голосов
/ 01 октября 2019

У меня проблемы с доступом к вложенному объекту при использовании 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)
}

У меня есть QOrder, QItem классы, сгенерированные и работающие нормально. Но details.description выдает ошибку, потому что класс QDetails не был сгенерирован. Как мне заставить его генерировать QDetails?

1 Ответ

0 голосов
/ 17 октября 2019

Первая проблема, которую я вижу, состоит в том, что вы пропустили точку с запятой в операторе return, что может вызвать другие проблемы. Способ генерации QDetails состоит в том, чтобы сначала сослаться на запрос и запросить подробности из назначенного результата.

Надеюсь, это поможет!

...