es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se hace una consulta IN con parámetro en una plantilla de Mongo?

Soy nuevo en Spring y quisiera traducir esta consulta a una consulta en el motor de plantillas Mongo. ¿Alguien puede ayudarme?

“`java
public List<prodotto> selectedList(List<integer> categories){

<pre><code>TypedQuery<product> findSelectedQuery1 = em
.createQuery( "SELECT DISTINCT p FROM Product p WHERE p.category.idCategory IN :categories ",
Product.class);
findSelectedQuery1.setParameter("categories", categories);

return findSelectedQuery1.getResultList();
}
</product></code></pre>

“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Aquí hay una posible consulta de MongoTemplate equivalente a la consulta JPA dada:

    public List<product> selectedList(List<integer> categories) {
        Query query = Query.query(Criteria.where("category.idCategory").in(categories))
                        .with(Sort.by("id").ascending());
        return mongoTemplate.find(query, Product.class);
    }
    

    Explicación:
    Query query = Query.query(Criteria.where("category.idCategory").in(categories)): Esta línea crea un objeto de consulta con un criterio que filtra los documentos cuyo campo category.idCategory coincide con cualquier valor de la lista categories. Ten en cuenta que Criteria.where() especifica el campo por el cual filtrar, y in() especifica la lista de valores a coincidir.
    .with(Sort.by("id").ascending()): Esta línea agrega una condición de ordenamiento que ordena los resultados en orden ascendente según el campo id. Esto es opcional, pero puede ser útil si deseas un orden predecible para tus resultados.
    return mongoTemplate.find(query, Product.class);: Esta línea llama al método find() de la clase MongoTemplate, pasando el objeto de consulta y la clase de destino (Product.class) como argumentos. Esto ejecutará la consulta y mapeará los resultados a una lista de objetos Product.

Comments are closed.