数据库表中有多个属性,我们需要根据不同的属性获得不同的结果。如果相应的需求很多,就会有很多类似的代码。
以下代码可以避免重复情况的出现。
public List findByProperty(String propertiy,Object value){
log.debug("finding Device instances by "+propertiy+" ="+value);
try{
String queryString="from Device as model where model."+propertiy+"=?";
Query queryObject=getSession().createQuery(queryString);
queryObject.setParameter(0,value);
return queryObject.list();
}catch(RuntimeException e){
log.error("find by property name failed", e);
throw e;
}
}
传入类型是需要筛选的属性名字,后面跟的是该属性的值。
返回的是List类型,如果知道具体类型,向下转化就可以成为具体的类型。