return getHibernateTemplate().find("select new
com.freightservice.model.TenderCarrierBestBidInformationResultItem(" +
"tender, tenderBid) " +
"from Tender tender, TenderBid tenderBid " +
"where tender = tenderBid.tender " +
"and tenderBid.carrier = ? " +
"and tenderBid.bidPrice = (" +
"select min(b.bidPrice) " +
"from tenderBid b " +
"where b.carrier = tenderBid.carrier " +
"and b.tender = tenderBid.tender)", carrier);
vygeneruje to nasledovny select:
select
tender0_.id as col_0_0_,
tenderbid1_.id as col_1_0_
from
tender tender0_,
tender_bid tenderbid1_
where
tender0_.id=tenderbid1_.fk_tender_id
and tenderbid1_.fk_carrier_id=?
and tenderbid1_.bid_price=(
select
min(tenderbid1_.bid_price)
from
tender_bid tenderbid1_
where
tenderbid1_.fk_carrier_id=tenderbid1_.fk_carrier_id
and tenderbid1_.fk_tender_id=tenderbid1_.fk_tender_id
)
pre tabulku tender_bid je pouzity rovnaky alias : tenderbid1_
dakujem
Ivan
Jiří Mareš wrote / napísal(a):
Ahoj,
to mi prijde divny, ja jsem si myslel, ze alias se vytvari castecne ze jmena
tabulky a castecne pomoci poradoveho cisla
tabulky, tudiz tam 2 stejne aliasy byt nemuzou. Neni problem jinde. Pouzivate
aliasy v originalnim HQL dotazu?
Zkuste sem poslat ten HQL dotaz ...
S pozdravem
Ivan Polák napsal(a):
pouzivam v Hibernate vytvaranie select-ov pomocou HQL
getHibernateTemplate().find("select....."). mam ale select, kde pouzivam
v "hlavnom select-e" 2 tabulky (prepojene cez id-cka) a vo where
podmienke je sub-select, kde pouzivam jednu z tych 2 tabuliek co v
hlavnom selecte.
a tu je prave problem Hibernate si pri vytvarani SQL dotazu vytvori pre
tieto tabulky v hlavnom dotaze a sub-selecte rovnaky alias, takze
samozrejme dostavam iny select a nie to co som chcel.
neviete prosim, ako tento problem odstranit.