hibernate 处理 group by 的重大bug

hibernate重大BUG


HQL:
select t.objid
from T01VPeople t
where 1 != 1
or (t.t01Peoplemodel.propertyname = 'hotel_city' and
t.objlong in (select tree.ptid
from T01Propertytree tree
where tree.treename like '%上海%'))
or (t.t01Peoplemodel.propertyname = 'hotel_name' and
t.objstringhit like '%龙东%'))
group by t.objid
having count(t.objid) = 2

Hibernate转换成sql:

select
t01vpeople0_.OBJID as col_0_0_
from
T01_V_PEOPLE t01vpeople0_,
T01_PEOPLEMODEL t01peoplem1_
where
t01vpeople0_.OMID=t01peoplem1_.OMID
and (
1<>1
or t01peoplem1_.PROPERTYNAME='hotel_city'
and (
t01vpeople0_.OBJLONG in (
select
t01propert2_.PTID
from
T01_PROPERTYTREE t01propert2_
where
t01propert2_.TREENAME like '%上海%'
)
)
or t01peoplem1_.PROPERTYNAME='hotel_name'
and (
t01vpeople0_.OBJSTRINGHIT like '%龙东%'
)
)

正确语句:

select
t01vpeople0_.OBJID as col_0_0_
from
T01_V_PEOPLE t01vpeople0_,
T01_PEOPLEMODEL t01peoplem1_
where
t01vpeople0_.OMID=t01peoplem1_.OMID
and (
1<>1
or t01peoplem1_.PROPERTYNAME='hotel_city'
and (
t01vpeople0_.OBJLONG in (
select
t01propert2_.PTID
from
T01_PROPERTYTREE t01propert2_
where
t01propert2_.TREENAME like '%上海%'
)
)
or t01peoplem1_.PROPERTYNAME='hotel_name'
and (
t01vpeople0_.OBJSTRINGHIT like '%龙东%'
)
)
group by t01vpeople0_.OBJID having count(t01vpeople0_.OBJID) =2


--------------------------------------------------------------------------

ORM: T01VPeople <-->T01_V_PEOPLE T01Peoplemodel <--> T01_PEOPLEMODEL
关联 :T01_V_PEOPLE.omid <--> T01_PEOPLEMODEL.omid
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值