DetachedCriteria多条件查询or,disjunction
2015-07-14 11:07
423 查看
使用Disjunction来做sql中or的配置。
首先看看Disjunction的结构:
应用:
这样生成的sql语句:
首先看看Disjunction的结构:
public class Disjunction extends Junction { protected Disjunction() { super("or"); } }
public class Junction implements Criterion { ... }
应用:
String[] diffFlagArray = finder.getDiffFlags().split(","); Disjunction disjunction = Restrictions.disjunction(); for(String flag : diffFlagArray){ if(flag.equalsIgnoreCase("portName")){ disjunction.add(Restrictions.eq("portNameDiff", '1')); }else if(flag.equalsIgnoreCase("trustor")){ disjunction.add(Restrictions.eq("trustorDiff", '1')); }else if(flag.equalsIgnoreCase("trustee")){ disjunction.add(Restrictions.eq("trusteeDiff", '1')); }else if(flag.equalsIgnoreCase("custodian")){ disjunction.add(Restrictions.eq("custodianDiff", '1')); }else if(flag.equalsIgnoreCase("investManager")){ disjunction.add(Restrictions.eq("investManagerDiff", '1')); }else if(flag.equalsIgnoreCase("acountManager")){ disjunction.add(Restrictions.eq("acountManagerDiff", '1')); } } criteria.add(disjunction);
这样生成的sql语句:
and ( this_.c_port_name_diff=? or this_.c_trustor_diff=? or this_.c_trustee_diff=? or this_.c_custodian_diff=? or this_.c_invest_manager_diff=? or this_.c_acount_manager_diff=? )
相关文章推荐
- 关于在windows上调试ODOO8.0的几个问题
- 安卓4大组件
- 搜索匹配
- 日历
- SQL跨数据库复制表
- virtualBox打开vmdk文件
- Python标准库简介
- 练习3.19 计算后缀表达式的值
- java 大数据处理之内存溢出解决办法(一)
- loadrunner中对https证书的配置
- IOS风格的时间选择器在安卓中的简单实现
- 转载:objc-zen-book
- 通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库
- 【leetcode】20. Valid Parentheses
- 路由器的疑问???
- git入门-linux下配置git
- linux下C获取系统时间的方法
- HDU 5274 Dylans loves tree(DFS序+线段树+LCA离线查询模板+手动扩大内存)
- 剑指off-统计数字二进制位有多少个1
- 分页存储过程