java - 如何避免多次执行相同的查询?

标签 java hibernate

我需要一种方法来避免多次执行相同的查询。 从代码的角度来看,我不需要任何帮助。高级方法会很好。

目前我正在不同的类中执行相同的 hibernate 查询,这些执行是同一请求的一部分。 截至目前,我正在使用请求级缓存来存储数据。后来我从缓存而不是数据库中获取这些数据以提高性能。但是我想知道除了上述方法之外是否还有其他方法可以遵循。

如果你能在这方面提供帮助,那将非常有帮助。

谢谢

最佳答案

您可以注册一个将实现 ServletContextListener 的网络监听器。 您将需要实现 contextInitialized(应用程序部署)和 contextDestroyed(应用程序取消部署)。

@WebListener
public final class CacheBootstrap implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
       // load data into cache (hql?)
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
       // unload data from cache (hql?)
    }
}

关于java - 如何避免多次执行相同的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39631946/

相关文章:

java - 32 位和 64 位 Eclipse 的区别

java - toUpperCase(); - 异常 : The method toUpperCase() is undefined for the type Pseudo

java - 使用 Hibernate 和 Oracle 批量插入不记录哪个实体导致 ConstraintViolationException

java - 如何使用 Spring、Hibernate 和 PostgreSQL 将数据导出到 Excel?

Java:单行三元运算符 if stmt

java - 通过类型索引为 0 的构造函数参数表示的 Spring 不满足的依赖关系

java - hibernate 状态下的未知实体

java - Hibernate - @Transactional 不工作是否有任何特殊原因?

java - java.awt.Graphics.drawLine 如何工作?

java - hibernate JPA : detached entity passed to persist