createCriteria中排序
时间: 2023-09-08 09:16:44 浏览: 47
在使用 MyBatis 进行查询时,可以使用 `createCriteria` 方法创建查询条件,同时也可以使用 `orderBy` 方法对查询结果进行排序。
例如,我们要查询用户表中所有年龄大于 18 岁的用户,并按照用户的姓名进行升序排序,可以这样写:
```java
Example example = new Example(User.class);
Example.Criteria criteria = example.createCriteria();
criteria.andGreaterThan("age", 18);
example.orderBy("name").asc();
List<User> userList = userDao.selectByExample(example);
```
在上面的代码中,`example.orderBy("name").asc()` 表示按照用户的姓名进行升序排序。如果要进行降序排序,可以使用 `example.orderBy("name").desc()` 方法。
同时,`orderBy` 方法也支持多个字段的排序,例如:
```java
example.orderBy("name").asc().orderBy("age").desc();
```
表示先按照姓名升序排序,再按照年龄降序排序。
相关问题
mybatis中example添加排序条件
在 MyBatis 中,可以使用 Example 对象来生成动态 SQL,以添加排序条件,示例如下:
```java
Example example = new Example(User.class);
example.createCriteria().andEqualTo("status", 1);
example.orderBy("create_time").asc();
List<User> userList = userMapper.selectByExample(example);
```
在上面的示例中,我们创建了一个 Example 对象,并添加了一个等于条件,然后调用 `orderBy` 方法来添加排序条件。这里我们指定了按照 `create_time` 字段升序排序。
也可以使用 `orderByDesc` 方法来指定降序排序:
```java
example.orderByDesc("create_time");
```
需要注意的是,在 `orderBy` 和 `orderByDesc` 方法中,指定的排序字段必须是数据库表中的字段。如果是关联表中的字段,需要使用别名来指定,例如:
```java
example.orderBy("t_order.create_time").asc();
```
这里的 `t_order` 是关联表的别名。
hibernate 怎么做排序
在 Hibernate 中进行排序可以使用 Criteria API 或 HQL。下面是使用 Criteria API 进行排序的示例代码:
```
Criteria criteria = session.createCriteria(MyEntity.class);
criteria.addOrder(Order.asc("myProperty"));
List<MyEntity> results = criteria.list();
```
其中,“MyEntity” 是需要排序的实体类, “myProperty” 是需要排序的属性名,可以使用 Order.asc 或 Order.desc 方法指定升序或降序排序。
使用 HQL 进行排序的示例代码:
```
Query query = session.createQuery("FROM MyEntity E ORDER BY E.myProperty ASC");
List<MyEntity> results = query.list();
```
其中,“MyEntity” 是需要排序的实体类, “myProperty” 是需要排序的属性名,在 HQL 中使用 “ORDER BY” 子句进行排序,可以使用 “ASC” 或 “DESC” 关键字指定升序或降序排序。