hibernate的hql 中in的参数如何设置

我用hibernate写数据库查询的时候一般不建立表关联,一是表之间的关系通常比较复杂,各种关联,导致的性能比较低,二是因为hql比较灵活。所以批量更新的时候需要in关键字,我总结了一下两种

1、in的参数如果已知了,可以直接拼接在后面 如FROM A WHERE A.ID IN (1,2,3,4...)。
2、上面的情况下,通常(1,2,3,4...)都是作为参数传递过来的,可能是数组或者List。
假设List<Integer> a;a里面已经有数据了,则HQL查询条件可以为:

String hql="FROM A WHERE A.ID IN (:ids)";
Query query = getSession().createQuery(hql);
query.setParameterList("ids", a);



之前采用第二种的方式时候走过一些弯路,就是我写成了如下样子

String hql="FROM A WHERE A.ID IN (?)";
Query query = getSession().createQuery(hql);
query.setParameter(0, a);

这种?的情况下直接替换了,就变为in("3,4,5")...
而采用文章中形式和in正确方法是in("3","4","5")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值