代码之家  ›  专栏  ›  技术社区  ›  Oliver Hanappi

有没有一个NHIBERNATE标准实际上什么都不做?

  •  3
  • Oliver Hanappi  · 技术社区  · 16 年前

    我在找一个不加限制的非纤维酸标准。原因是我有一个方法,它将一些输入参数转换成一个添加到条件中的条件。有一组输入参数,不需要应用任何限制。因此,我想返回某种伪标准。

    在NHibernate有类似的东西吗?

    最好的问候,
    奥利弗哈纳皮

    3 回复  |  直到 11 年前
        1
  •  0
  •   Jaguar    16 年前

    好吧,你可以做一些类似于限制的事情。如果查询一个以“id”为主键的实体(因此永远不能为空),那么就不能为空。任何评估为没有逻辑限制的内容都可以根据您的需求使用。

        2
  •  3
  •   ilitirit    11 年前

    可以使用始终为真的空连接(它解析为“1=1”)。

    如。

    ICriterion conditionalCriteria = includeCriteria 
        ? Restrictions.Eq("someEntity.Field", variable)
        : (ICriterion) Restrictions.Conjuction();
    
    var query = Session
        .CreateCriteria<SomeEntity>("someEntity")
        .Add(conditionalCriteria)
        .SetResultTransformer(Transformers.AliasToBean<SomeEntity>())
        .List<SomeEntity>();
    
        3
  •  0
  •   Firearm    11 年前

    您可以根据需要添加条件,因此只需检查参数是否为空,如果不是空,则添加条件。见例子:

    Criteria cr = session.createCriteria(Employee.class)
    cr.add(Restrictions.like("firstName", "Bob%"));
    
    if (par_salary.IsNotNullOrEmpty())
    {
         cr.add(Restrictions.eq("salary", par_salary));
    }
    List results = cr.list();
    

    其中一部分来自 Hibernate Criteria Queries