Nhibernate查询并集
我对Nhibernate很陌生,所以这听起来可能很傻 我有一个函数,它根据我进行查询所需的内容接收参数:Nhibernate查询并集,nhibernate,nhibernate-criteria,queryover,Nhibernate,Nhibernate Criteria,Queryover,我对Nhibernate很陌生,所以这听起来可能很傻 我有一个函数,它根据我进行查询所需的内容接收参数: Public List<Data> GetResultData(SearchParams[] searchparams) {} 正如我们所看到的,名称没有值。因此,我的查询需要如下所示: select * from DB where ID ="34". 必须在运行时根据可用值创建查询。如果这两个属性都可用,则它将是这两个属性的和 由于输入是一个搜索参数数组,因此查询的数量与对
Public List<Data> GetResultData(SearchParams[] searchparams) {}
正如我们所看到的,名称
没有值。因此,我的查询需要如下所示:
select * from DB where ID ="34".
必须在运行时根据可用值创建查询。如果这两个属性都可用,则它将是这两个属性的和
思想?一系列与分离相关的限制,称为分离。与和相联系的一系列限制称为连词 所以,你需要的是 一个连词表示你的第三个条件 连接第一、第二和第三个条件的一个析取: 下面是:
Criterion startInRange = Restrictions.between("expectedStartCanonicDate", rangeStart, rangeEnd);
Criterion endInRange = Restrictions.between("expectedCompletionCanonicDate", rangeStart, rangeEnd);
Criterion thirdCondition =
Restrictions.conjunction().add(Restrictions.le("expectedStartCanonicDate", rangeStart))
.add(Restrictions.ge("expectedCompletionCanonicDate", rangeEnd));
Criterion completeCondition =
Restrictions.disjunction().add(startInRange)
.add(endInRange)
.add(thirdCondition);
criteria.add(completeCondition);
Criterion startInRange = Restrictions.between("expectedStartCanonicDate", rangeStart, rangeEnd);
Criterion endInRange = Restrictions.between("expectedCompletionCanonicDate", rangeStart, rangeEnd);
Criterion thirdCondition =
Restrictions.conjunction().add(Restrictions.le("expectedStartCanonicDate", rangeStart))
.add(Restrictions.ge("expectedCompletionCanonicDate", rangeEnd));
Criterion completeCondition =
Restrictions.disjunction().add(startInRange)
.add(endInRange)
.add(thirdCondition);
criteria.add(completeCondition);