5
我需要一种方法来避免多次执行相同的查询。 我不需要代码角度的任何帮助。高层次的方法会很好。如何避免多次执行相同的查询?
当前我在不同的类中执行相同的hibernate查询,这些执行是同一请求的一部分。 截至目前,我正在使用请求级缓存来存储数据。后来,我从缓存而不是数据库中提取这些数据来提高性能。但我想知道是否还有其他方法可以跟上述方法分开。
如果您可以提供帮助,这将非常有帮助。
感谢
我需要一种方法来避免多次执行相同的查询。 我不需要代码角度的任何帮助。高层次的方法会很好。如何避免多次执行相同的查询?
当前我在不同的类中执行相同的hibernate查询,这些执行是同一请求的一部分。 截至目前,我正在使用请求级缓存来存储数据。后来,我从缓存而不是数据库中提取这些数据来提高性能。但我想知道是否还有其他方法可以跟上述方法分开。
如果您可以提供帮助,这将非常有帮助。
感谢
你可以注册一个Web侦听器将实施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?)
}
}
我有点惊讶,重复的查询不会在数据库本身的〜0 ms内返回。 –
我建议重构代码的相关部分,以便每个请求只执行一次有问题的查询。 –
@Joop Eggen ..感谢您的回复。它是Oracle还是Hibernate的现有功能? – Rehman