JPA Consulta de Criterios distintos

Estoy tratando de escribir un diferentes criterios de consulta, mediante:

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<RuleVar> query = builder.createQuery(RuleVar.class);
Root<RuleVar> ruleVariableRoot = query.from(RuleVar.class);
query.select(ruleVariableRoot.get("foo").<String>get("foo")).distinct(true);

Basado en el ejemplo en el javadoc de CriteriaQuery.seleccione()

CriteriaQuery<String> q = cb.createQuery(String.class);
 Root<Order> order = q.from(Order.class);
 q.select(order.get("shippingAddress").<String>get("state"));

Sin embargo, este me da un error:

The method select(Selection<? extends RuleVar>) in the type CriteriaQuery<RuleVar> is not applicable for the arguments (Path<String>)

Por favor alguien puede señalar lo que estoy haciendo mal? O cómo obtener un objeto de Selección de una Ruta de acceso?

OriginalEl autor Greg | 2012-09-14

1 Kommentar

  1. 51

    Lo tengo. El problema era mi CriteraQuery necesario para ser de tipo String. Esto funciona:

    CriteriaBuilder builder = em.getCriteriaBuilder();
    CriteriaQuery<String> query = builder.createQuery(String.class);
    Root<RuleVar> ruleVariableRoot = query.from(RuleVar.class);
    query.select(ruleVariableRoot.get(RuleVar_.varType)).distinct(true);

    OriginalEl autor Greg

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea