Estoy usando Hibernate 3.5.1 y EntityManager para la persistencia de los datos (con JPA 2.0 y EHCache 1.5). Puedo obtener la consulta mediante el siguiente código:HIbernate Entity Manager: ¿cómo almacenar en caché las consultas?
EntityManager em;
...
Query query = em.createQuery(...);
...
Ahora, el problema es que CreateQuery de EntityManager() devuelve javax.persistence.Query que, a diferencia org.hibernate.Query (devuelto por CreateQuery de la SessionFactory() método), no tiene el método org.hibernate.Query.setCacheable().
¿Cómo se supone que guarde las consultas en caché con EntityManager (u otra parte de Hibernate)?
Gracias por los consejos. Utilizaré las "cadenas mágicas específicas del proveedor" con cadenas importadas de una clase de titular constante (como HibernateHintConstants), lo que asegurará que se genere un error de compilación si elimino Hibernate (siempre que recuerde eliminar la clase con las constantes relacionadas a sugerencias específicas de Hibernate). – eold
@leden - Las cadenas ya están en org.hibernate.ejb.QueryHints, para evitar reinventar la rueda. – OrangeDog
También puede agregar sugerencias en las anotaciones de @NamedQuery – OrangeDog