java - hibernate :标准。是否可以构建一个限制列表,然后将其添加到 Criteria 对象

标签 java hibernate criteria restrictions

我有一个带有 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 方法中的限制

最佳答案

是的,这是可能的。您的限制列表应该是标准对象的常规列表(即列表 )。需要明确的是,如果您像示例代码一样将它们全部添加,您将执行一个合取操作(一系列逻辑 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();

关于java - hibernate :标准。是否可以构建一个限制列表,然后将其添加到 Criteria 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11525841/

相关文章:

java - 为什么当我想重新绘制我的画时 repaint() 不起作用?

java - AlertDialog 依次显示/关闭

java - Hibernate Elasticsearch 与 wildfly 14 兼容

java - 尽管延迟初始化还是热切加载?

vba - 从一个工作表复制数据并粘贴到另一工作表中的相关行

java - Hibernate Criteria Restrictions.eq 不区分大小写

java - 在迭代java期间修改集合

java - 提高 Java 中字符串连接的性能

java - Hibernate 5.0.0.CR2 中未启用 getGenerateKeys() 支持错误

java - Grails ...返回 PagedResultList 的模拟标准