Hibernate的HQL中in参数设置

本文介绍了在Hibernate中使用HQL查询时in语句的几种常见应用场景,包括子查询和参数传递方式,并提供了具体的Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://charyle.iteye.com/blog/1021356

平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句。
    我最常用的情况有2种:
   1in后是个子查询,如 FROM A WHERE A.ID IN (SELECT B.AID FROM B WHERE ...),这样是没问题的,如果A.ID 和B.AID是相同的数据类型。
   2in的参数如果已知了,可以直接拼接在后面 如FROM A WHERE A.ID IN (1234...)。
   3、上面的情况下,通常(1234...)都是作为参数传递过来的,可能是数组或者List。
    假设List<Integer> a;a里面已经有数据了,则HQL查询条件可以为:        
Java代码  收藏代码
String hql="FROM A WHERE A.ID IN (:alist)";  
Query query = getSession().createQuery(hql);  
query.setParameterList("alist", a);  
   另外,query.setParameterList中的第二个参数,还可以是数组类型,如int[] a,不要被方法名称迷惑。我也是最近刚学会的这种in参数设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值