Hibernate的HQL中in参数设置
2016-03-01 14:57
274 查看
平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句。
我最常用的情况有2种:
1、in后是个子查询,如 FROM A WHERE A.ID IN (SELECT B.AID FROM B WHERE ...),这样是没问题的,如果A.ID 和B.AID是相同的数据类型。
2、in的参数如果已知了,可以直接拼接在后面 如FROM A WHERE A.ID IN (1,2,3,4...)。
3、上面的情况下,通常(1,2,3,4...)都是作为参数传递过来的,可能是数组或者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参数设置。
我最常用的情况有2种:
1、in后是个子查询,如 FROM A WHERE A.ID IN (SELECT B.AID FROM B WHERE ...),这样是没问题的,如果A.ID 和B.AID是相同的数据类型。
2、in的参数如果已知了,可以直接拼接在后面 如FROM A WHERE A.ID IN (1,2,3,4...)。
3、上面的情况下,通常(1,2,3,4...)都是作为参数传递过来的,可能是数组或者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参数设置。
相关文章推荐
- Libreoffice打开文档读取错误恢复
- Spring实战-雇员薪资管理系统
- 移动通信网络
- 【数据结构】复杂链表的复制
- Python中文编码问题
- pig0.15+hadoop2.x安装 (注意版本匹配)
- Xcode 升级后,常常遇到的遇到的警告、错误,解决方法
- 使用overridePendingTransition()方法,打开、关闭activity有动画
- JEPF 软件快速开发平台
- 基于spring和mybatis项目的JUnit测试用例的实现
- android自定义主题样式
- Maven环境配置
- Exercise #5
- Linux常用命令
- mysql运维3--备份
- UIKit框架(21)UITableView实现复杂单元格(二)
- iOS---Bluetooth工作流程
- java.lang.Object.clone()分析
- K9000 常识
- Qt安装配置