Hay alguna forma de realizar una consulta como la siguiente con JPA2 criterios Api?

select a from b where a in (1, 2, 3, 4)

Hay una manera de hacer que el uso de la llanura de Hibernar, pero que no podemos encontrar nada de eso en JPA2.

OriginalEl autor abahgat | 2011-04-18

1 Comentario

  1. 7

    Sí JPA 2 Criterios admite la devolución de un campo específico de una entidad y con una cláusula where que incluye un in cláusula. He incluido un ejemplo por debajo de la cual toma un JPQL y la convierte en una similar JPA 2 basadas en Criterios de opción.

    JPQL:

    select b.a from B b where a in (1, 2, 3, 4)

    Criterios:

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    //assuming a is an Integer  
    //if returning multiple fields, look into using a Tuple 
    //   or specifying the return type as an Object or Object[]
    CriteriaQuery<Integer.class> query = criteriaBuilder.createQuery(Integer.class);
    Root<B.class> from = query.from(Bean.class);
    query.select(from.get("a"))
         .where(from.get("a").in(1, 2, 3, 4));
    
    //create query and execute...
    ...  

    Aquí hay algunos enlaces que dan algunos, además de ejemplos de uso de in:

    Espero que esto ayude!

    OriginalEl autor Kris Babic

Dejar respuesta

Please enter your comment!
Please enter your name here