Pergunta

Eu tenho um Spring MVC/Primavera de Dados / Mongo DB aplicação.Eu tenho neste meu ambiente de acordo com a primavera a documentação dos dados e a minha repositórios funcionar bem (eu posso executar consultas com predicados)

Eu queria saber se era possível executar um tipo de seguro de consulta (usando Spring Dados e QueryDSL) ao fazer uma projeção (eu quero apenas a alguns campos de um grande documento).

O QueryDSL documentação dá um exemplo para o Hibernate, mas afirma que isso pode ser feito em todos os módulos QueryDSL Documentação (mas eu não tenho sido capaz de descobrir como fazê-lo com Mongo)

aqui está o trecho de código para o hibernate

class CustomerDTO {

  @QueryProjection
  public CustomerDTO(long id, String name){
     ...
 }

 QCustomer customer = QCustomer.customer;
 JPQLQuery query = new HibernateQuery(session);
 List<CustomerDTO> dtos = qry.from(customer).list(new QCustomerDTO(customer.id,    customer.name));     

Qualquer Idéias ?

Foi útil?

Solução

Este não é suportada atualmente.Sinta-se livre para adicionar um bilhete para ele em nosso Issue tracker.

O Lucene e o Mongodb módulos de Querydsl suporte apenas projeções diretas da raiz de consulta, mas para personalizado projeções algo que poderia ser descoberto.

Outras dicas

Eu só construiu uma projeção de como este:

Criteria c1 = Criteria.where("field.name").is("val")
Criteria projection = Criteria.where("field").is(1)
BasicQuery query = new BasicQuery(c1.getCriteriaObject(), projection.getCriteriaObject())
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top