【发布时间】:2016-07-18 13:54:22
【问题描述】:
我有简单的 JPA 查询
Query query = getEntityManager().createQuery("SELECT pn FROM ProductsNames pn"
+ " WHERE pn.languages = :language"
+ " ORDER BY pn.products.id ASC");
query.setParameter("language", language);
return query.getResultList();
如何检查这些方法的结果是从缓存中返回对象列表还是直接从数据库中返回?
在 persistence.xml 我设置了以下参数:
<property name="eclipselink.logging.level.sql" value="FINE"/>
所以在服务器的输出上我可以监控执行的查询(但我不确定 - 如果查询在输出上可见,这意味着查询已发送到数据库,或者表示查询已发送到 entityManager 和 entityManager 决定使用缓存,然后将查询发送到数据库)。
那么我如何区分对象的哪个结果来自:
- 直接来自数据库
- 直接从缓存中
感谢您的帮助。
【问题讨论】:
-
您的配置显示为 EclipseLink,但您的标签显示为 Hibernate。这将是特定于提供商的。
标签: java jpa caching eclipselink