中易网

Hibernate连表查询怎么查满足条件的记录条数(分别用Query和Criteria)

答案:3  悬赏:50  
解决时间 2021-04-09 04:29
有两张表,items和orders;多对一关系;
items中字段:id,name,orderid(外键);
orders中字段:id,name;
各字段类型和对应的实体类具体样子就不赘述了。
现在要查满足以下条件的记录条数:
item.name like '%i%',且item.orderid关联的orders的name like '%a%';
用Query查询所有的记录我会查的,hql="from Item i join fetch i.order o where i.name like '%i%' and o.name like '%a%'";
但是怎么查询满足要求的记录条数?我在前面加"select count(*) "来查询的话会报异常。
我想过先查出所有记录:List list=query.list();return list.size();
但很明显,当满足条件的记录条数相当多时,这种方法效率非常低下,有没有更好的办法?
请高手解答,谢谢!!!

简单地说就是这样一个SQL查询用hibernate该怎么查:
select count ( * )
from items i
inner join orders o
on i.orderid = o.id
where i.name like 'i' and o.name like 'a';
中文描述为:将items 表和orders 表按条件 items.orderid=order.id内连接。
查 items.name 包含'i' orders.name包含'a'的记录条数。
最佳答案
想用了hibernate。又写sql 就不能用query了

session.createSQLQuery("......");就不会报错了
全部回答
你可以试试用二级缓存 或者分页吧。。。。
select count(*) from items i ,orders o where i.orderid=o.id and (类型中字段对应的属性,有时用自动生成的orderid可能会是order,主要看你的类中是如何对该外键属性进行命名) i.name like '%i%' and o.name like '%a%'"; 返回的值是一个object,需要进行处理,如何处理相信你能解决,如果不行可以给我留言,最好附上你需要处理块的代码.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
福建南安市新宏宝石材有限公司二厂地址在什么
安利数码港是做什么的,有什么用~??
我的毕业证遗失要报考执业医师怎么办
(1)测量干电池的电动势和内电阻.(a)某学
李宇春是什么罩杯
找不到“已在车站退票,通知我们退款”按钮?
东兰县老干部活动中心地址在哪,我要去那里办
初二生物:营养繁殖能够保持植物的_____,加快_
丹希路这个牌子的钱包怎么样?
改正句子中的错别字下雪了孩子们再高兴得堆雪
每天喝椰子汁对身体有危害吗?要理由
双川小区在什么地方啊,我要过去处理事情
妈妈咪呀李巧林做的什么健康产业
买手机分期付款还差100多没有还!到以后会不会
买忆捷 16G U盘 自带文件可不可以删除呀!
推荐资讯
成都双流T2机场可以使用电子登机牌过安检吗?
一个二级网点,中通快递要六万,每天派件是30
one group is for the very young with nobod
乌龟吃了鱼腥草会死吗?
请问图片里的拧獴是什么?是柠檬么?
关于lol 新手入门
英文歌歌词 高潮部分 round the way round th
春又来,我要静等花开。 求给对出下联
打算学安卓,要先学习什么呢,自学安卓可以麽
为啥西财排名这么低
廖景萱的新qq号
我想要一个带"雯"字的个性签名 要独一无二的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?