我将HibernateTemplate与Oracle数据库一起使用,并且在执行简单查询时会花费太多时间。
String queryString = "from document as doc where doc.name=?";
return getHibernateTemplate().find(queryString, "cloud");
这个简单的查询可以在8-10秒内获取200条记录。
答案 0 :(得分:0)
解决此问题的第一步是通过在配置文件中将“ hibernate.show_sql”设置为“ true”来收集更多信息,以便准确查看生成了什么SQL。这样一来,您就可以查看和测试生成的查询,以找出问题的根源。
在没有更多信息的情况下,我的最佳猜测是该语句触发了对大量记录的急切获取。过度使用急切获取是一个常见错误,它可能会严重降低Hibernate应用程序的速度。 Hibernate急切的获取效率很低,一次只能检索一条记录,并且对数据库运行大量查询。