还是那个问题,我想复制一个cnd对象,在原来cnd对象的基础上加条件...
18 回复
我直接扔代码了,
@At
@GET
public Object list(){
Entity<ProductFrequence> entity = dao.getEntity(ProductFrequence.class);
Cnd cnd = Ins.searchParams(entity); //封装参数
cnd.desc(Product.CREATE_TIME);
Pager pager = Ins.pager();
List<ProductFrequence> rows = productFrequenceDao.query(cnd, pager); //执行一次查询,获取list
List<SqlExpression> sqlExpressions = cnd.where().cloneExps(); //获取原来Cnd里的条件,出问题了:中间参数是AND,其他都正常,然而导致我的sql是连续的selct... where and and ...age=1...
for(int i=0; i<rows.size(); i++){
SimpleCriteria c3 = Cnd.cri();
for(int j=0; j<sqlExpressions.size(); j++){
c3.where().and(sqlExpressions.get(j)); //获取原来cnd的条件
}
c3.where().and(ProductCartfre.PRO_BARCODE, "=", rows.get(i).getPro_barcode()); //加上我的新条件
ProductCartfre fetch = dao.fetch(ProductCartfre.class, c3); //查询..
if(fetch!=null){
rows.get(i).setCarts(fetch.getFrequence());
}
}
pager.setRecordCount(productFrequenceDao.count(cnd));
return Outs.listInfo(rows, pager);
}
为啥不用clone呢?
Cnd cnd = Cnd.where("name", "=", "wendal").and("age", "=", 18);
Cnd cnd2 = Cnd.where(cnd.where().clone());
添加回复
请先登陆