• Hibernate标准查询语言


    Hibernate标准(Criteria)查询语言(HCQL)用于根据具体条件获取记录。Criteria接口提供了应用标准的方法,例如检索薪水大于50000的表的所有记录。

    HCQL的优势

    HCQL提供了添加条件的方法,因此,java程序员可以很容易添加条件。 java程序员能够在查询中根据需要添加多个条件。

    Criteria接口

    Criteria接口提供了许多方法来指定条件。 可以通过调用Session接口的createCriteria()方法获得Criteria对象。

    session接口的createCriteria()方法的语法

    public Criteria createCriteria(Class c)
    
    Java

    常用的Criteria接口方法如下:

    1. public Criteria add(Criterion c) 用于添加限制(条件)。
    2. public Criteria addOrder(Order o) 指定排序顺序。
    3. public Criteria setFirstResult(int firstResult) 指定要检索的第一个记录数。
    4. public Criteria setMaxResult(int totalResult) 指定要检索的记录总数。
    5. public List list() 返回包含对象的列表。
    6. public Criteria setProjection(Projection projection) 指定投影。

    Restrictions类

    Restrictions类提供可用作标准的方法。 常用的Restrictions类方法如下:

    1. public static SimpleExpression lt(String propertyName,Object value) 将给定属性的约束设置为小于约束。
    2. public static SimpleExpression le(String propertyName,Object value) 设置给定属性的小于或等于约束。
    3. public static SimpleExpression gt(String propertyName,Object value) 设置给定属性的大于约束。
    4. public static SimpleExpression ge(String propertyName,Object value) 设置给定属性的大于或等于约束。
    5. public static SimpleExpression ne(String propertyName,Object value) 对给定的属性设置不相于约束。
    6. public static SimpleExpression eq(String propertyName,Object value) 设置约束与给定属性相等。
    7. public static Criterion between(String propertyName, Object low, Object high) 设置约束之间范围。
    8. public static SimpleExpression like(String propertyName, Object value) 将类似的约束设置为给定的属性。

    Order类

    Order类代表排序顺序。常用的 Restrictions 类方法如下:

    1. public static Order asc(String propertyName) 适用于给定属性的基础上,按升序排列。
    2. public static Order desc(String propertyName) 适用于给定属性的基础上,按降序排列。

    Hibernate标准查询语言的示例

    下面将给出一些HCQL的例子。

    获取所有记录的HCQL示例

    Crietria c=session.createCriteria(Emp.class);//passing Class class argument  
    List list=c.list();
    
    Java

    HCQL获得第10到20个记录的例子

    Crietria c=session.createCriteria(Emp.class);  
    c.setFirstResult(10);  
    c.setMaxResult(20);  
    List list=c.list();
    
    Java

    HCQL获取薪资大于10000的记录示例

    Crietria c=session.createCriteria(Emp.class);  
    c.add(Restrictions.gt("salary",10000));//salary is the propertyname  
    List list=c.list();
    
    Java

    以薪酬(Salary)为基础升序排序记录的HCQL示例

    Crietria c=session.createCriteria(Emp.class);  
    c.addOrder(Order.asc("salary"));  
    List list=c.list();
    
    Java

    HCQL及投影

    我们可以通过诸如name等的投影来获取特定列的数据。下面来看一下简单的投影示例,仅打印表的name列的数据。

    Criteria c=session.createCriteria(Emp.class);  
    c.setProjection(Projections.property("name"));  
    List list=c.list();
    
    Java
     
  • 相关阅读:
    week2 About BuildTools
    week2 GIT and Version Control
    学习RFC相关知识以及心得
    Week 1 Functional Language
    8.C语言_中文字符存储问题
    7.C语言_字符与字符串
    6.C语言_整数类型
    4.C语言_变量与参数的内存布局
    3.C语言_变量
    2.C语言_参数传递与返回值
  • 原文地址:https://www.cnblogs.com/borter/p/9522400.html
Copyright © 2020-2023  润新知