Hibernate用Criteria查询时使用Distinct方法去除重复数据

本文介绍如何使用Hibernate Criteria API中的Distict方法去除查询结果中的重复数据。通过示例代码展示了一个包含join查询的情况,并说明了如何设置ENTITY级的DISTINCT模式以确保结果集中的每条记录都是唯一的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[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设成了其它的值。

注:转载请注明原文出处!

 

为了您的安全,请只打开来源可靠的网址

打开网站    取消

来自: http://hi.baidu.com/xiaolangs/blog/item/5bc758d3307f75043af3cf31.html

<script type="text/javascript"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值