甜心宝宝的gravatar头像
甜心宝宝 2016-03-21 10:20:31

hibernate查询执行query.list()为什么很慢?

hibernate查询很慢,执行query.list()方法的时候需要停留10多秒,但是把查询语句放到MySQL中查询就非常快。不知道什么原因?!关联查询的表有3个,设置的懒加载都是false,因为如果设置为true,就会报懒加载异常(在web.xml中配置了,不管用,必须设置为false)!求教,谢谢各位了,如能解决问题,可以赠送牛币喔

所有回答列表(2)
han108的gravatar头像
han108  LV16 2016年3月22日

你把hibernate的sql打印打开,你的实体里面是不是很多关联对象,查看控制台是否显示很多的关联查询,然后把关联对象都设置为延迟加载试试

评论(2) 最佳答案
最代码官方的gravatar头像
最代码官方  LV168 2016年3月21日

基本可以断定是hibernate执行的hql查询导致速度慢。

可以将hibernate配置为show sql,确认hql转换后的sql和你在mysql中执行的有什么异同,另外是执行sql的条数是否和你预期的一致。

或者把mysql的log打开确认下最终在mysql server上执行的sql的是否和你预期的一致。

还有个java框架可以支持完整的sql输出到log

java log4jdbc日志框架

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友