我正在研究一些现有代码的新项目。它使用HibernateTemplate.findByNamedQueryAndNamedParam来调用数据库中的存储过程。
当我在数据库上执行存储过程时,它会在2或3秒内执行。但我通过HibernateTemplate方法执行它,它需要2到34分钟。
当我打开showsql时,我看到有数千个select语句被触发。有关可能发生这种情况的可能原因的任何指示。
答案 0 :(得分:0)
您的问题可能是由于二级缓存和查询缓存配置错误造成的。
检查查询缓存的到期时间是否与第二级缓存的到期时间相同 - 对于查询提取的所有实体 - 。 (查看ehcache配置文件 - 或者您正在使用的任何其他二级缓存提供程序 - )