Crear un criterio de JPA completamente dinámicamente

Normalmente soy un usuario de Hibernate y para mi nuevo proyecto usamos JPA 2.0.

Mi DAO recibe un contenedor con un genérico.

<code>public class Container<T> {
  private String fieldId;    // example "id"
  private T value;           // example new Long(100) T is a Long
  private String operation;  // example ">"

  // getter/setter
}
</code>

Las siguientes líneas no compilarán:

<code>if (">".equals(container.getOperation()) {
  criteriaBuilder.greaterThan(root.get(container.getFieldId()), container.getValue());
}
</code>

Porque debo especificar el tipo como este:

<code>if (">".equals(container.getOperation()) {
  criteriaBuilder.greaterThan(root.<Long>get(container.getFieldId()), (Long)container.getValue());
}
</code>

¡Pero no quiero hacer eso! ¡Porque uso un genérico en mi contenedor! ¿Tienes una idea?

Respuestas a la pregunta(1)

Su respuesta a la pregunta