Ahoj, no tak to je hodne zajimavy, protoze podle me je to spravne ... zkusil bych malou drobnost, prehodit poradi tabulek v prvnim dotazu na ...
select new com.freightservice.model.TenderCarrierBestBidInformationResultItem(tender, tenderBid) from TenderBid tb, Tender t where t = tb.tender and tb.carrier = ? and tb.bidPrice = ( select min(tb2.bidPrice) from tenderBid tb2 where tb2.carrier = tb.carrier and tb2.tender = tb.tender ) Mohlo by dojit k prehozeni poradi tabulek a pak by mohl byt vzdy jiny alias. Ale kazdopadne bych to postnul jako bug do HIbernate ... > 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_ > > 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. >>> > -- Jiří Mareš (mailto:jiri.ma...@svt.cz) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic