45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何去除left join fetch中的多余记录?

如何去除left join fetch中的多余记录?

2016-09-03 15:56:18 来源:www.45fan.com 【

如何去除left join fetch中的多余记录?

Class 和Student 存在一对多关系,如果class表中id为1的记录有1条,student表中对应class id为1的记录有2条,如下执行hql

selectclass from Class as class leftjoin fetch Class.Student where class.Id=1

我们希望得到的是一条class记录,其中包含2条student子记录,但是hql返回的list中却是有2条这样的记录

改变hql

selectdistinc class from Class as class leftjoin fetch Class.Student where class.Id=1

返回的结果还是那样,这里只是在生成sql的时候加上了distinct,

我们可以通过将结果集放到一个set中,利用set的性质来去除多余记录

Set classSet = new LinkedHashSet(list);//这里list是hql返回的结果

list.clear();

list.addAll(classSet);

return list;

 

本文地址:http://www.45fan.com/a/question/71816.html
Tags: JOIN left fetch
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部