我正在使用Hibernate 3.5.1和EntityManager进行数据持久性(使用JPA 2.0和EHCache 1.5)。HIbernate实体管理器:如何缓存查询?
EntityManager em;
...
Query query = em.createQuery(...);
...
现在的问题是,EntityManager的的createQuery()方法返回javax.persistence.Query,不像为org.hibernate.Query(由SessionFactory的的的createQuery()返回:我可以通过下面的代码获得查询方法),没有org.hibernate.Query.setCacheable()方法。
我如何,那么,应该用缓存的EntityManager(或休眠的其他部分)的查询?
谢谢你的提示。 我将使用“供应商特定的魔术字符串”从一个恒定holder类(如HibernateHintConstants),这将确保如果我删除休眠时生成编译错误输入字符串(只要我还记得与相关的常量删除类到Hibernate特有的提示)。 – eold 2010-08-26 11:07:22
@leden - 字符串已经在org.hibernate.ejb.QueryHints中,以避免重新发明轮子。 – OrangeDog 2011-01-31 16:20:42
您还可以在@NamedQuery注释中添加提示 – OrangeDog 2011-01-31 16:24:28