[英]SELECT query not using cache
在我的Web应用程序中,我有一个执行大量写入查询的工作。 这项工作必须非常快,这就是我使用无状态会话的原因 。
因此,只要我必须更新或插入一个实体,我就会使用这个无状态会话 。
但是,要检索我的作业中使用的数据,我正在使用普通会话( Play Framework创建的会话),以便加载关系。
这通常工作正常,因为我使用正常会话在作业开始时检索数据,然后使用无状态会话更新和插入更改(因此两个会话之间没有冲突)。
但是,我现在遇到了这个解决方案的问题。 我有一个实体,我也在从另一份工作中更新。 在我的第一份工作中,我需要对该实体进行最后一次更新(我需要在我的工作之间同步这个实体)。 因此,当我需要它时,我使用新的SELECT查询检索它,但实体不包含上次更新!
我认为这是因为缓存。 当使用无状态会话在另一个作业中更新此实体时,正常会话的缓存不会更新,然后当我执行SELECT查询以检索上次更新时,我只是获取缓存中的内容(这不是最后一次更新) 。
因此,为了解决我的问题,我想知道是否可以使用Hibernate执行SELECT查询,而不使用缓存。 实际上我想强制Hibernate执行一个新的真正的SELECT查询,不使用缓存来从数据库中检索最后一次更新。
你有什么主意吗?
编辑
我正在使用JPA
要使用JPA
从数据库更新实体,我使用了刷新功能,它可以工作。
entityManager.refresh(entity);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.