日期:2014-05-18  浏览次数:20634 次

判断问题?
下面是我的一个查询方法(多条件查询):
System.out.println("0000000000");能够打印,到了if判断里,就不能打印了,为什么进不了if判断呢?不知道错误在哪?
其中StringUtil.isEmpty是一个判断不为空的方法(方法可以用),这里调用了。我用的struts2 ,hebinate3,和DAO模式开发。
   



//根据条件查询

public ForShipmentModel queryby(Session sess, ForShipmentModel model) {

try{

StringBuffer sb = new StringBuffer("from ForShipmentModel orderinfo where orderinfo.id=:id ");

boolean flag = false;
System.out.println("0000000000");
  if (!StringUtil.isEmpty(model.getApplyPersonName()))
{
  System.out.println("11111111111111");
sb.append(" orderinfo.applyPersonName = " + model.getApplyPersonName());

flag = true;
 
}

if (!StringUtil.isEmpty(model.getOrderNumber()))
{
if (flag == true)
{
sb.append(" and orderinfo.orderNumber = " + model.getOrderNumber());
}else
{
sb.append(" orderinfo.orderNumber = " + model.getOrderNumber());
flag = true;
}
}

if (!StringUtil.isEmpty(model.getCustomer()))
{
if (flag == true)
{
sb.append(" and orderinfo.customer = " + model.getCustomer());
}else
{
sb.append(" orderinfo.customer = " + model.getCustomer());
flag = true;
}
}
if (model.getApproveState() > 0)
{
if (flag == true)
{
sb.append("and orderinfo.approveState = " + model.getApproveState());
}else
{
sb.append("orderinfo.approveState = " + model.getApproveState());
flag = true;
}
}
if (model.getOrderDate() != null)
{
if (flag == true)
{
sb.append(" and orderinfo.orderStatus = " + model.getOrderDate());
}else
{
sb.append(" orderinfo.orderStatus = " + model.getOrderDate());
flag = true;
}
}


if (flag == true)
{

Query qCount = sess.createQuery("select count(*) "
+ sb.toString());

int totalNum = ((Integer) qCount.iterate().next()).intValue();
model.setRecordCount(totalNum);
sb.append(" order by orderinfo.id");
System.out.println(qCount);
 


// 加分页的
  Query q = sess.createQuery(sb.toString());
  q.setFirstResult(model.getPageSize() * (model.getPageNo() - 1));
  q.setMaxResults(model.getPageSize());
  List list = q.list();
  model.setModelList(list);
}
System.out.println("3333");
return model;
}
catch(Exception e){
System.out.println("---------File: ForShipmentDaoImpl.java ==== Method:Queryby() -------------");
e.printStackTrace();
return null;
}
}


------解决方案--------------------

------解决方案--------------------
只能说明model.getApplyPersonName()为空了
------解决方案--------------------
代码太乱了,为什么不用代码格式。
------解决方案--------------------
debug
------解决方案--------------------
在用 if (!StringUtil.isEmpty(model.getApplyPersonName())) 之前
先用System.out.println(model.getApplyPersonName());看这个值是不是为空.

------解决方案--------------------
那就证明你的参数传递有问题被!
那就不是你贴的代码能看出来的
检查下model在那里获得的?