导航:首页 > 净水问答 > hql过滤重复数据

hql过滤重复数据

发布时间:2020-12-17 01:51:49

『壹』 hibernate hql 语句去除重复数据

参考如下:

/**
* 功能:根据品牌查询
*
* @param pageSize
* 每页大小
* @param currentLPagem
* 当前第几页
* @param proctBlack
* 产品品牌
* @param proctBlackItem
* 产品分类
* @param proctSize
* 产品尺码
* @param keyWord
* 搜索关键字
* @return
*/
public pageBean seachProctByBrank(int pageSize, int currentLPage,
String proct_Brank, String proct_itemName) {
// final String hql = "from " + OgrilProcts.class.getName()
// + " where proct_Brank='" + proct_Brank
// + "' and proct_itemName='" + proct_itemName
// + "' order by proct_registerDate desc";
final String hql = " from "
+ OgrilProcts.class.getName()
+ " as proct where proct.proctItemName='"
+ proct_itemName
+ "' and proctBrank='"
+ proct_Brank
+ "' and not exists( from "
+ OgrilProcts.class.getName()
+ " where proctItemName='"
+ proct_itemName
+ "' and proctBrank='"
+ proct_Brank
+ "' and proctItemNumber=proct.proctItemNumber and proctId<proct.proctId )";
int allRow = this.getAllRowCount(hql);// 总记录数
int totalPage = pageBean.countTotalpage(pageSize, allRow);// 总页数
final int offset = pageBean.countOffset(pageSize, currentLPage);// 当前页开始记录
final int length = pageSize;
final int currentPage = pageBean.countCurrentPage(currentLPage);
List list = this.queryForPage(hql, offset, length);// 记录
// 把分页信息保存到Bean中
pageBean pagebean = new pageBean();
pagebean.setPageSize(pageSize);
pagebean.setCurrentPage(currentPage);
pagebean.setAllRow(allRow);
pagebean.setTotalPage(totalPage);
pagebean.setList(list);
return pagebean;
}

『贰』 hql只显示重复记录的一条记录

select distinct news from News news join fetch news.att order by news.newsno desc

『叁』 hql语句怎么消除重复内容

1、hql语句和sql语句其实差不多的,只是把表名、字段名用做相对应的类名、属性内名等。
2、distinct 只能用于单容个字段去除重复,对于多个字段去除重复使用distinct很可能会得到你不想要的结果。
1、如果有多个字段去除重复你可以是用group by语句。
2、这里不知道你根据哪几个字段排重,举个例子,比如你的a表对应的有 b、c、d字段,需要去除重复,
例如:对应的实体类为A,有属性 b、c、d
HQL为:FROM A as a GROUP BY a.b,a.c,a.d;

『肆』 在hql中去重的问题,去除其中一个字段有重复的

SELECT DISTINCT 列名称 FROM 表名称

『伍』 HQL查询不重复数据

for(int i=0;i<LIST.size();i++)
Object[] obj=LIST.get(i);

『陆』 今天写了一个hql作查询,结果查询出很多条重复的记录,肯定做了笛卡尔积

from t1,t2,t3..tn这就是笛卡尔积
t1表总记录乘以t2表总记录乘以t3表总记

『柒』 hibernate hql 查询指定字段并获取结果集 且出去这个字段中的重复数据

hql="select s.id,s.name,t.id,t.name from User s,Useraddress t where t.id=s.id"
这条sql里面的User和Useraddress是两个实体类,现在组合查询分别取出来两个实体类里面的两个字段,然后我想再建立一个实体类Result,里面定义这四个结果集里面的字段,能不能执行完这条hql,正好把这个结果集对应到实体类Result里面呢,Result这个实体类,没写映射文件Result.hbm.xml.
希望能帮下忙

2种做法
创建一个class temp
有属性sid,name,tid,sname,tname
创建一个构造函数
public temp(sid,name,tid,sname,tname)
{

}
1.hql中
List<temp>

select new temp(s.id,s.name,t.id,t.name) from User s,Useraddress t where t.id=s.id

2.List
记录的每一行是object[] 遍历
object[0] ==s.id
object[1] ==s.name
object[2] ==t.id
object[3] ==t.name
感谢glamey兄弟的文章,正好解决了当前遇到的问题。原文链接如下:http://glamey.iteye.com/blog/721019
假设我们现在有一个DTO,其属性包括两张表的属性,我们现在需要将sql语句查询得到的内容转为一个DTO对象,其解决方法如下:

String sql = "select u.userName as userName ,p.title as title ,p.addTime as addTime from user as u,post as p where u.id=p.userId"
Query q = factory.getCurrentSession().createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(PostVO.class));

上面select中as后面的内容必须和PostVO中属性名一致,这样就可以返回一个针对PostVO的一个集合。
其实大家可以看下hibernate这一部分的源码就会发现,主要是使用了AliasToBeanResultTransformer这个类,通过sql的查询,会返回数组,然后hibernate根据数据表的映射,自动帮我们来set对应的字段属性,所以标红的部分务必要跟VO中的属性值一直,要不然会报错的。
如果需要的话,大家也可以重写这个类。例如VOResultTransformer。然后在中更改成:
setResultTransformer(new VOResultTransformer(PostVO.class));

另外,除了以上glamey的方法外,还有一种方法:

Query q = session.createQuery("select new com.hibernate.MsgInfo(m.id, m.cont, m.topic.title, m.topic.category.name) from Msg m");
List<MsgInfo> list=q.list();
其中,MsgInfo是DTO。值得注意的是,第二种方法中DTO必须提供带参数的构造方法,并且HQL语句中属性的位置要与构造方法中的位置一一对应。

『捌』 用hql语句查出不重复信息

select distinct 字段名 from 表名

字段名就是你查出
小明
小明
小刚
这三条信息的语句,在前边加上distinct去重函数就好

『玖』 hql 语句查询oracle 数据数据重复显示

其实可以用很简单SQL语句抄将其查询出来。如果想查询数据表中某一个字段重复(这里假设这个字段名是ID1),可以使用以下SQL语句。
select Table1.* from Table1 right join (
select ID1 From Table1 Group by ID1 having Count(ID1) > 1 ) T on Table1.id1 = T.id1
如果想查询数据表某两个字段重复,则可以使用如下语句查询。
select Table1.*
from Table1 right join (
select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) > 1 and Count(ID2) > 1 ) T
注:上面代码中出现的ID1和ID2字段均不是数据表主键。

阅读全文

与hql过滤重复数据相关的资料

热点内容
维思冠衡通仪是怎么泡出污水的 浏览:953
饮水机大水桶怎么改成聪明嘴 浏览:182
工厂废水里有什么 浏览:324
尿素滤芯在尿素箱哪里 浏览:333
污水处理企业怎么改制 浏览:691
超滤膜滤芯怎么用需要排废水 浏览:660
北京市水处理招聘 浏览:42
反渗透滤芯净水口不出水 浏览:956
小米空气净化器为什么会有酸味 浏览:478
旧汽车空调滤芯怎么更换 浏览:50
日本存超纯水有什么用途 浏览:74
12v骆驼电瓶怎么加蒸馏水 浏览:170
南充保姆净水器怎么样 浏览:833
七级超滤净水机改ro反渗透 浏览:952
小白鞋被污水染色怎么办 浏览:189
油烟净化器耗电量是多少 浏览:340
超滤多久洗一次 浏览:987
净化器空气不制冷怎么办 浏览:749
换了千兆路由器网速有提升吗 浏览:640
固体硬化型感光树脂 浏览:937