原查询语句:
select
C.gift_Name,C.gift_Cd
from
Tbl_Giftmst C,
(
select A.gift_Cd1, A.Gift_Cd2
from
tbl_postreq A,
tbl_extract B
where
A.Gift_Select='3' and
B.Group_No=A.Group_No and
B.Dm_Cd='AY001211'
) D
where
C.Gift_Cd=D.GIFT_CD1 or
C.Gift_Cd=D.Gift_Cd2
简化以后:
select
C.gift_Name,C.gift_Cd
from
Tbl_Giftmst C,
tbl_postreq A,
tbl_extract B
where
( C.Gift_Cd=A.GIFT_CD1 or C.Gift_Cd=A.Gift_Cd2 ) and
B.Group_No=A.Group_No and
A.Gift_Select='3' and
B.Dm_Cd='AY001211'
由于hibernate的方法getHibernateTemplate().find(hql.toString(),paramer ) 不支持嵌套查询
顾需要简化,实在不行的话, 使用view查询