[hibernate]Hibernate用Criteria查询时使用Distinct方法去除重复数据
//片段代码
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like("name", name, MatchMode.ANYWHERE));
criteria.createAlias("perms","p");
criteria.add(Restrictions.in("p.uuid", perms)); //join 查询,出现重复数据
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //设置ENTITY级的DISTINCT模式,根实体
criteria.list(); //得出去除了重复数据后的结果集
//注:此方法完全正确,如果不成功请查看是否有其它类的方法把criteria.setResultTransformer设成了其它的值。
注:转载请注明原文出处!
<script type="text/javascript"></script>
分享到:
相关推荐
为了去除重复的结果,可以使用`setResultTransformer`方法,例如: ```java crite.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ``` 这样处理后的结果集将只包含唯一的根实体对象。 #### 动态查询 在...
- **DISTINCT**:用于过滤重复的查询结果。 - **DELETE**和**UPDATE**:支持对象的删除和更新操作。 - **计算属性值**:允许在查询中进行简单的数学运算。 - **函数支持**:支持常见的SQL函数如`lower`、`upper`等。...
在使用Hibernate的HQL(Hibernate Query Language)时,有一些关键的注意事项需要理解并遵循,以确保查询的正确性和效率。以下是对这些要点的详细说明: 1. **在Hql中使用`group by`的问题** - **统计函数与分组**...
- **解决方案**: 在Hibernate的Criteria API中,可以通过调用`setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)`方法来去除查询结果中的重复项。这会确保查询结果只包含唯一的根实体对象。 #### 二、HTTP与...
Hibernate 提供了 `Criteria.DISTINCT_ROOT_ENTITY` 结果转换器,用于在查询时去除结果集中的重复实体。在 Criteria 查询中,添加 `dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);` 可以确保返回的实体...
dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) 是 Hibernate 框架中用于去除重复项的方法。Criteria.DISTINCT_ROOT_ENTITY 是一个标记,用于指定结果集的去重方式。在 Hibernate 中,我们可以使用 ...
Hibernate中的Criteria查询可以通过设置ResultTransformer为DISTINCT_ROOT_ENTITY来去除查询结果中的重复实体。`dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);` 这一行代码的作用是确保返回的实体结果...
Hibernate 提供了 `dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);` 来去除查询结果中的重复实体。这会在查询执行后对结果进行处理,确保返回的根实体是唯一的。 2. **HTTP和SMTP协议及端口**: HTTP...
1. **Hibernate离线查询去除重复项**:在Hibernate中,使用Criteria API时,可以设置ResultTransformer为`Criteria.DISTINCT_ROOT_ENTITY`来去除查询结果中的重复实体。 2. **HTTP与SMTP协议及端口**:HTTP是用于...
Hibernate框架提供了Criteria接口,可以使用`Criteria.DISTINCT_ROOT_ENTITY`作为结果转换器来去除查询结果中的重复项。 2. HTTP与SMTP协议及其端口: - HTTP(超文本传输协议)默认使用80端口,用于客户端与...
- **解决方案**: 在Hibernate的Criteria API中,可以通过调用`setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)`方法来去除查询结果中的重复项。 #### 二、HTTP与SMTP协议及其端口 - **HTTP**: 超文本传输协议...
Hibernate中的Criteria API提供了去除查询结果重复项的方法,`dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);`这行代码会确保返回的结果集中不会有重复的根实体对象。 2. **HTTP与SMTP协议及其端口**:...
在Hibernate中,使用dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)可以去除重复项。 2. HTTP协议及端口、SMTP协议及端口 HTTP(HyperText Transfer Protocol)是一种超文本传输协议,使用80端口。SMTP...
1. **离线查询去除重复项**:在Hibernate的Criteria查询中,使用`dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)`可以去除结果集中重复的根实体。 2. **网络协议与端口**:HTTP协议通常使用80端口,SMTP...
在JPA或Hibernate中,我们可以使用`Criteria.DISTINCT_ROOT_ENTITY`作为结果转换器来去除查询结果中的重复根实体。 2. **HTTP和SMTP协议及其端口**:HTTP协议通常运行在端口80上,用于传输网页内容;SMTP(Simple ...
Hibernate 提供了一个方便的方法来去除查询结果中的重复实体,即 `dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);` 这行代码会确保返回的实体结果是唯一的,避免了由于关联查询导致的重复数据。 2. **...
为了实现这一目标,开发者可以使用`Criteria` API中的`setResultTransformer`方法,将查询结果转换器设置为`Criteria.DISTINCT_ROOT_ENTITY`。这一操作会确保查询结果中只包含唯一的实体对象,即使这些对象可能在...
**解决方案**: 使用`Criteria` API中的`setResultTransformer()`方法,并传递`Criteria.DISTINCT_ROOT_ENTITY`参数,可以有效地去除查询结果中的重复项。 **代码示例**: ```java Criteria criteria = session....
使用`distinct`关键字可以去除查询结果中的重复元素: ```java hql = "select distinct e.category from MyEntity e"; List<Category> categories = query.list(); ``` 以上就是HQL查询的基本用法,通过这些操作,...