Hibernate基础学习——Criterion

hibernate是一个开放的ORM框架,完成数据持久化

层级关系

public class AtpMemberRiskDaoImpl extends BaseDaoAdapter<AtpMemberRisk, Long> implements AtpMemberRiskDao{
。。。
}

public class BaseDaoAdapter extends BaseDaoSupport{}

public class BaseDaoSupport extends HibernateDaoSupport
    implements BaseDao
{}

hibernate的Criterion 
单个字段查询

Criterion cond = Restrictions.eq("membercode",membercode);
List<AtpMemberRisk> result = find(cond);
if(result!=null&&result.size>0){
    return result;
}else return null;

多字段查询

public List<AtpProd> queryByCond(AtpProdCond cond,Page page,QueryOrder[] qOrders) {
		/*
		 * 处理查询条件
		 */
		Criterion[] criterions = null;
		if(cond != null) {
			List<Criterion> criterionList = new ArrayList<Criterion>();
			// 产品编码
			if(!StringUtil.isEmpty(cond.getAtpProdCode())) {
				criterionList.add(Restrictions.eq("atpProdCode", cond.getAtpProdCode()));
			}
			// 产品状态
			if(!StringUtil.isEmpty(cond.getStatus())) {
				criterionList.add(Restrictions.eq("status", cond.getStatus()));
			}
			else if(cond.getStatusSet()!=null && cond.getStatusSet().size()>0) {
				criterionList.add(Restrictions.in("status", cond.getStatusSet()));
			}
			// 产品类型
			if(!StringUtil.isEmpty(cond.getFinProdType())) {
				criterionList.add(Restrictions.eq("finProdType", cond.getFinProdType()));
			}
			// 产品发布终端
			if(cond.getSupportTerminal()!=null && cond.getSupportTerminal() != SupportTerminalType.All.val()) {
				Set<Integer> stSet = new HashSet<Integer>();
				stSet.add(SupportTerminalType.All.val());
				stSet.add(cond.getSupportTerminal());
				criterionList.add(Restrictions.in("supportTerminal", stSet));
			}
			// 用户标识
			if(cond.getUserFlag() != null) {
				criterionList.add(Restrictions.eq("userFlag", cond.getUserFlag()));
			}
			// 用户类型,查询支持指定人群产品
			if(!StringUtil.isEmpty(cond.getUserType())) {
				// 不支持所有人群
				if(AtpProdUserType.NONE.equals(cond.getUserType())) {
					criterionList.add(Restrictions.eq("userType", cond.getUserType()));
				}
				// 非支持所有人群
				else if(!AtpProdUserType.ALL.equals(cond.getUserType())) {
					Criterion se = null;
					AtpProdUserType userType = new AtpProdUserType(cond.getUserType());
					boolean[] types = userType.getItems();
					for(int i=0; i<types.length; i++) {
						if(types[i]) {
							AtpProdUserType item = (new AtpProdUserType());
							item.setItem(i, true);
							if(se == null) {
								se = Restrictions.like("userType", item.toString().replace(AtpProdUserType.FALSE, '_'));
							}
							else {
								se = Restrictions.or(se, Restrictions.like("userType", item.toString().replace(AtpProdUserType.FALSE, '_')));
							}
						}
					}
					criterionList.add(se);
				}
			}
			if(criterionList.size() > 0) {
				criterions = (Criterion[])criterionList.toArray(new Criterion[criterionList.size()]);
			}
		}
		
		/*
		 * 处理排序信息
		 */
		Order[] orders = null;
		// 若排序条件为空,设定默认排序方式
		if(qOrders==null || qOrders.length==0) {
			// 默认按照“产品开始日期”升序排列
			orders = new Order[2];
			orders[0] = Order.desc("displayOrder");
			orders[1] = Order.desc("horizonFrom");
		}
		// 转换排序对象
		else {
			orders = new Order[qOrders.length];
			for(int i=0; i<qOrders.length; i++) {
				orders[i] = qOrders[i].isAscending() ? Order.asc(qOrders[i].getPropertyName())
						: Order.desc(qOrders[i].getPropertyName());
			}
		}
		
		// 查询
		if(criterions != null) {
			return find(page, orders, criterions);
		} else {
			return find(page, orders);
		}
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值