QueryDsl MongoDB - Acessando objetos profundamente aninhados para consulta


9

Tenho problemas ao tentar acessar o objeto aninhado ao usar BooleanBuilder. Eu li que o padrão é 2 níveis, mas para o meu caso de uso, preciso acessar objetos aninhados de terceiro nível. Então, eu adicionei @QueryInitcomo indicado em muitas outras respostas. Mas ainda não consigo acessá-lo. Aqui está o meu código:

@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)
}

Eu tenho QOrder, QItemclasses geradas e funcionando bem. Mas details.description dá erro porque a QDetailsclasse não foi gerada. Como faço para gerar QDetails?

Respostas:


0

O primeiro problema que vejo é que você perdeu um ponto-e-vírgula na declaração de retorno, o que pode estar causando outros problemas. A maneira de gerar QDetailsé primeiro fazer referência à consulta e solicitar os detalhes do resultado atribuído.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.