中的限制吗
我有一个带有25个可选参数的动态搜索。HQl不是一种选择。我正在使用API标准。我有一些DAO方法,我想接受一个"限制"列表,我可以在我的服务层中构建它,这样,当我从服务中调用我的DAO方法时,如下所示:
Lits<myPojoClass> = myDAO.getDataByCriterion( <?Restriction List?> )
myDAO.getDataByCriterion可以使用"限制列表",如下所示:
inside the myDAO class
Public List<myPojoClass> getDataByCriterion( <?Restriction List?> restrictionList) {
Session s = HibernateUtil.currentSession();
Criteria c = s.createCriteria(myPojo.class)
.add(Restrictions ( <?Restriction List?> ); //attach the list here
List<myPojoClass> response = c.list();
这似乎是你应该能够做的事情。有可能添加传递到DAO方法
是的,这是可能的。您的限制列表应该是标准对象的常规列表(即List<Criterion>)。需要明确的是,如果你像你的示例代码一样把它们都加起来,你就要做一个连词(一系列逻辑AND)。
将我的建议添加到您的代码中可以得到:
Public List<myPojoClass> getDataByCriterion( List<Criterion> restrictionList) {
Session s = HibernateUtil.currentSession();
Criteria c = s.createCriteria(myPojo.class);
for (Criterion crit : restrictionList){
c.add(crit);
}
List<myPojoClass> response = c.list();