Hibernate连表查询怎么查满足条件的记录条数(分别用Query和Criteria)
有两张表,items和orders;多对一关系;items中字段:id,name,orderid(外键);orders中字段:id,name;各字段类型和对应的实体类具体...
有两张表,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'的记录条数。 展开
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'的记录条数。 展开
展开全部
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,需要进行处理,如何处理相信你能解决,如果不行可以给我留言,最好附上你需要处理块的代码.
(类型中字段对应的属性,有时用自动生成的orderid可能会是order,主要看你的类中是如何对该外键属性进行命名) i.name like '%i%' and o.name like '%a%'";
返回的值是一个object,需要进行处理,如何处理相信你能解决,如果不行可以给我留言,最好附上你需要处理块的代码.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
ZESTRON
2024-09-04 广告
2024-09-04 广告
表界面分析在材料科学及化学领域占据核心地位,它深入探索物质表面与界面的微观结构、化学组成及相互作用。通过电商平台射线光电子能谱(电商平台PS)、扫描电子显微镜(SEM)及原子力显微镜(AFM)等先进技术手段,我们Dr. O.K. Wack ...
点击进入详情页
本回答由ZESTRON提供
展开全部
想用了hibernate。又写sql 就不能用query了
session.createSQLQuery("......");就不会报错了
session.createSQLQuery("......");就不会报错了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以试试用二级缓存
或者分页吧。。。。
或者分页吧。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询