日期:2014-05-19  浏览次数:20672 次

hibernate hql查询问题
本人刚学 hibernate 有一条查询语句不知道怎么写
select
w.winename
from
  WineBasicInfo w 
join
  w.marketingcompany w1 
 where
  w1.marketingcompanyid!=2

查询酒和销售它的公司 其中 WineBasicInfo(酒基本信息)和marketingcompany(营销公司)是多对多关系他们之间有张中间表 我要查询 marketingcompanyid为2的公司没有销售的产品信息 上面的hql是错误的 有很多重复结果而且marketingcompanyid 为2的公司在销售的产品也查询出来了
但是
select
w.winename
from
  WineBasicInfo w 
join
  w.marketingcompany w1 
 where
  w1.marketingcompanyid=2 结果是正确的 只显示该公司销售的产品



------解决方案--------------------
hql中不等于是用<> 你试试看
------解决方案--------------------
你这条语句查询的是2公司以外的公司销售的记录,它并不代表2公司以外的公司销售的就是2公司没销售的。因为你是多对多关系。
如:
如果1公司有a,b,c
2公司有b,c,d
那么你查询出来的就会是a,b,c,其中b就同时是2公司销售的。