hql和Criteria的效率哪个高?

meadking 2008-10-14 09:23:40
hql和Criteria的效率哪个高?
criteria.add(Restrictions.eq("id", docId));
criteria.add(Restrictions.eq("class", class));
hql=from doc where id=docId and class=class
这个添加的顺序和hql的顺序生成的sql是一样的吗?
都是 select * from where id=docId and class=class
会影响效率吗?

id=docId, class=class两个条件的顺序会影响执行效率吧?
id=docId的数据少
class=class的数据多
这样效率比较高吧where id=docId, class=class
这样效率比较低吧where class=class, id=docId
criteria的add顺序影响sql生成的顺序吗?还是hibernate会自动优化呀?
...全文
852 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
come_qian 2011-08-29
  • 打赏
  • 举报
回复
看了下 觉得收获很大
ri881226 2008-10-15
  • 打赏
  • 举报
回复
criteria的add顺序影响sql生成的顺序
criteria和HQL最终都是转换成SQL语句
SQL的执行顺序是从后向前
select * from where id=docId and class=class
那个条件过滤的数据多的话,就把它放在class位置上
ri881226 2008-10-15
  • 打赏
  • 举报
回复
hql优于criteria,速度在快点
但criteria更方便和安全,它可以动态添加查询条件!!~
根据实际开发情况选择,不一定非要用一种,可以一起用
动态的话用criteria
meadking 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 CAYU 的回复:]
他们是一个妈养的.
[/Quote]
一个妈养的也有大小呀!
双胞胎也有差异的
jspxnet 2008-10-15
  • 打赏
  • 举报
回复
他们是一个妈养的.

聪头 2008-10-15
  • 打赏
  • 举报
回复
我觉得由快到慢应该是sql > hql > criteria
meadking 2008-10-15
  • 打赏
  • 举报
回复
criteria的add顺序影响sql生成的顺序吗?还是hibernate会自动优化呀?
meadking 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 CHR_WHY 的回复:]
毫无疑问HQL是你的首选
[/Quote]
Why?
cancer2000 2008-10-15
  • 打赏
  • 举报
回复
个人比较喜欢用Criteria
CHR_WHY 2008-10-15
  • 打赏
  • 举报
回复
毫无疑问HQL是你的首选
ri881226 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xblue3 的回复:]

?sql先执行where后面的语句,这个没有问题,
但是where的条件也是从后面开始执行的吗?
where a=a and b=b;
先执行b=b吗?不太可能吧?
成星星啦!!!呵呵开心
[/Quote]
是啊!!~
可以去查查!!~~
恭喜升级
meadking 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ri881226 的回复:]
SQL的执行顺序是从后向前
[/Quote]
?sql先执行where后面的语句,这个没有问题,
但是where的条件也是从后面开始执行的吗?
where a=a and b=b;
先执行b=b吗?不太可能吧?
成星星啦!!!呵呵开心

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧