我正在使用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