zoukankan      html  css  js  c++  java
  • NHibernate(1) HQL 条件查询(QBC) 条件限制


    QBC (Query By Criteria) 主要有Criteria,Criterion,Oder,Restrictions,Expresss类组成

    比较运算符

       HQL运算符                   QBC运算符                      含义
          =                     Restrictions.eq()                  等于
          <>                   Restrictions.not(Exprission.eq())  不等于
          >                     Restrictions.gt()                  大于
          >=                   Restrictions.ge()                  大于等于
          <                     Restrictions.lt()                  小于
          <=                   Restrictions.le()                  小于等于
          is null             Restrictions.isnull()              等于空值
          is not null      Restrictions.isNotNull()           非空值
          like                 Restrictions.like()                字符串模式匹配
          and                Restrictions.and()                 逻辑与
          and                Restrictions.conjunction()         逻辑与
          or                   Restrictions.or()                  逻辑或
          or                   Restrictions.disjunction()         逻辑或
          not                  Restrictions.not()                 逻辑非
          in(列表)          Restrictions.in()                  等于列表中的某一个值
          ont in(列表)         Restrictions.not(Restrictions.in())不等于列表中任意一个值
          between x and y      Restrictions.between()             闭区间xy中的任意值
          not between x and y  Restrictions.not(Restrictions..between()) 小于值X或者大于值y


    1、简单查询 

    //+收货单
    ICriteria iReceivingCriteria = session.CreateCriteria(typeof(IEIReceivingContent));
    iReceivingCriteria.Add(Expression.Eq("InvoiceStatus", 3));

     iStockCriteria.Add(Expression.Like("OrgId", criteria.OrgId));

    2、时间段查询

         iReceivingCriteria.Add(Restrictions.Between("BusinessDate", criteria.BeginDate, criteria.EndDate));

    3、HQL 使用 多条件查询

      3.1 同一个输入数值 匹配两个字段

                list = DeliveryDao.CurrentSession.CreateCriteria(typeof(Delivery))
                    .Add
                     (
                       NHibernate.Criterion.Restrictions.Or
                        (
                            NHibernate.Criterion.Restrictions.Like("Id", "%" + idOrNo + "%"),
                            NHibernate.Criterion.Restrictions.Like("DeliveryNbr", "%" + idOrNo + "%")
                        )
                     )

      3.2 两个以上or 的实现方法 利用Disjunction方法可以实现
        crit.Add(Expression.Disjunction()
        .Add(Expression.Eq("order_state", 1))
        .Add(Expression.Eq("order_state", 2))
        .Add(Expression.Eq("order_state", 0))
        ); 

    3.3 多个字段不同的值

    NHibernate.ICriteria criteria = StorageBalanceDao.CurrentSession.CreateCriteria(typeof(StorageBalance));
            criteria.Add(
                   NHibernate.Criterion.Expression.Disjunction()
                        .Add(NHibernate.Criterion.Restrictions.Eq("property_1", "value_1"))
                        .Add(NHibernate.Criterion.Restrictions.Eq("property_2", "value_2"))
                        .Add(NHibernate.Criterion.Restrictions.Eq("property_3", "value_3"))
                );




  • 相关阅读:
    python3.4+pyspider爬58同城(二)
    pyspider安装后,点击run,报pyhton has stop working或python已停止运行的错误
    PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\Users\video\AppData\Local\Temp\tmpfipzk8ma'--问题解决
    使用firefoxprofile,selenium设置firefox,初始化firefox
    排序算法讲解
    Java寫聊天小程序
    csproj项目工程文件的脚本/动态链接库设置
    常见的内存加密防破解及安全方案
    Animator直接引用FBX下的AnimClip与直接引用单独的AnimClip的对比
    Jupyter多内核的手动配置(Python多版本)
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/2342318.html
Copyright © 2011-2022 走看看