CREATE VIEW dbo.VSMS_MessageSent AS SELECT TOP 100 PERCENT DWRDB.dbo.vsms_promoterMobile.BranchID, DWRDB.dbo.vsms_promoterMobile.OutletName, DWRDB.dbo.vsms_promoterMobile.PromoterName, DWSMP.dbo.History.mobileNumber, DWSMP.dbo.History.content, DWSMP.dbo.History.TaskTime, DWSMP.dbo.History.sendTime, DWSMP.dbo.History.status, DWRDB.dbo.vsms_promoterMobile.RegionID, DWRDB.dbo.vsms_promoterMobile.ProvinceID, DWRDB.dbo.vsms_promoterMobile.ProvinceName FROM DWRDB.dbo.vsms_promoterMobile LEFT OUTER JOIN DWSMP.dbo.History ON DWRDB.dbo.vsms_promoterMobile.Mobile = DWSMP.dbo.History.mobileNumber ORDER BY DWSMP.dbo.History.content DESC上面是建立该视图的语句
那你确定放入这个historyList里的不是同一条记录?
用这位兄弟说的方法。比如:String sql="from VSMS_MessageSent v where v.mobileNumber like '139%'";
这句SQL:
查出数据不都是第一条。可是出现了一个奇怪的事情比如
SC 苏宁成都西大街店 周世金 13980807940 正品机销售模板,以此为准LS:925028092/1/2340;913513026/-10/2424 20080526140524 20080526140524 1 WR 2800 Sichuan
这是我用SQL查询的记录。明明只有一条
可是用Hibernate查询出来,却有三条。
而且很多都是这样重复有两到三条
这点肯定是可以确定的
没有重复
我是在客户生产环境上做修改
每次在HQL时。我都会先用SQL查询一下确认记录的准备性
AS
SELECT TOP 100 PERCENT DWRDB.dbo.vsms_promoterMobile.BranchID,
DWRDB.dbo.vsms_promoterMobile.OutletName,
DWRDB.dbo.vsms_promoterMobile.PromoterName,
DWSMP.dbo.History.mobileNumber, DWSMP.dbo.History.content,
DWSMP.dbo.History.TaskTime, DWSMP.dbo.History.sendTime,
DWSMP.dbo.History.status, DWRDB.dbo.vsms_promoterMobile.RegionID,
DWRDB.dbo.vsms_promoterMobile.ProvinceID,
DWRDB.dbo.vsms_promoterMobile.ProvinceName
FROM DWRDB.dbo.vsms_promoterMobile LEFT OUTER JOIN
DWSMP.dbo.History ON
DWRDB.dbo.vsms_promoterMobile.Mobile = DWSMP.dbo.History.mobileNumber
ORDER BY DWSMP.dbo.History.content DESC上面是建立该视图的语句
String sql="from VSMS_MessageSent v where v.mobile=?";
Query query = session.createQuery();
query.setString(0, "13532323232");
setFirstResult(pageturn - 1);
query.setMaxResults(offset);
List historyList = query.list();
Query query = session.createQuery(sql);
我幫它改成配置不重複的字段就OK了