導航:首頁 > 凈水問答 > 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過濾重復數據相關的資料

熱點內容
12v駱駝電瓶怎麼加蒸餾水 瀏覽:170
南充保姆凈水器怎麼樣 瀏覽:833
七級超濾凈水機改ro反滲透 瀏覽:952
小白鞋被污水染色怎麼辦 瀏覽:189
油煙凈化器耗電量是多少 瀏覽:340
超濾多久洗一次 瀏覽:987
凈化器空氣不製冷怎麼辦 瀏覽:749
換了千兆路由器網速有提升嗎 瀏覽:640
固體硬化型感光樹脂 瀏覽:937
抽油煙機的過濾網壞了怎麼辦 瀏覽:469
飲水機恆溫時間怎麼調 瀏覽:445
qg空氣凈化器怎麼用 瀏覽:903
固定床離子交換器 瀏覽:568
碧水源納濾凈水 瀏覽:433
蒸餾法淡化海水的原理圖 瀏覽:437
蒸餾水電導值多少 瀏覽:708
醋酸廢水的氧化 瀏覽:875
列印機中列印回寫有什麼用 瀏覽:576
家裡有狗買什麼空氣凈化器好 瀏覽:112
說明簡單蒸餾和平衡蒸餾的特點及適用場合 瀏覽:840