从多个下拉列表获取值。然后传入进去一个对象中。然后根据对象中的值对数据库取值。不过hql语句要怎么写,我尝试着这样写。但是如果有些空值的时候就会报错了,报了空异常,该怎么动态取值啊!
hql = "FROM Delivery WHERE delivery.workerNub = '"
+ delivery.getWorkerNub()
+ "' AND delivery.deliveryName= '"
+ delivery.getDeliveryName()+ "' AND delivery.deliveryArea= '"+delivery.getDeliveryArea()+"' AND delivery.deliveryAddress= '"
+delivery.getDeliveryAddress()+"' AND delivery.idCard= '"+delivery.getIdCard()+"'";
hql = "FROM Delivery “
if(delivery.getWorkerNub()!=""){
hsql+=" WHERE delivery.workerNub = '"
+ delivery.getWorkerNub();
}
思路就是这样的,字符串拼接。拼接的时候,要注意什么时候需要where,什么时候需要空格。
恩,刚想到这个方法
如果判断是否为空,然后追加。但是如何确定and的位置,就是我现在有四个字段哦
要不用Criteria吧
Criteria criteria = session.createCriteria(Delivery.class);
if(null != delivery.getWorkerNub() && !delivery.getWorkerNub().equals(""))){
criteria.add(Restrictions.eq("delivery.workerNub",delivery.getWorkerNub()));
}
。。。。。
criteria.list();
如果多个是不是多条 语句啊
@finly: 是的,每个条件都判断一下值为空吗,不为空就加入到criteria中,就是一个条件一条if语句,这样就不用拼hql的时候来判断怎么加where和and