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?