CriteriaQuery设置可缓存



我知道我们将能够通过使用Query.Sethint(" org.hibernate.cachable",true)设置冬眠缓存以进行查询,例如下面的示例。但是,有人知道有什么方法是为了划分而不是查询吗?

Query query = entityManager.createQuery("from " + Employee.class.getName());
query.setHint("org.hibernate.cacheable", true);
return query.getResultList();

如果您有criteriaquery,则可以轻松地将其转换为"常规"查询。

...
c.select(root).where(p);
Query<MyEntity> regularQuery = this.currentSession().createQuery(c);
regularQuery.setHint("org.hibernate.cacheable", true);
return regularQuery.getResultList();

CriteriaQuery您可以输入CriteriaQuery对象从javax.persistence.Query package查询:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
javax.persistence.criteria.CriteriaQuery query = cb.createQuery();
((Query)query).setHint("org.hibernate.cacheable", true);

相关内容

  • 没有找到相关文章

最新更新