Zdravim
Mam klasicku dvojicu master-detail tabuliek, pre ktoru z hibernate
mapovania vyberam:
<hibernate-mapping>
<class name="BE" table="be">
...
<property name="stopTimestamp" type="java.util.Date"
column="STOP_TS"
not-null="false"/>
...
<bag name="analysis" cascade="all" order-by="start_ts">
<key column="be_id"/>
<one-to-many class="BEAnalysis"/>
</bag>
...
</class>
</hibernate-mapping>
Inymi slovami - analyzy sa mi objavuju zoradene podla svojho start_ts. V
jednom mieste programu spracovavame velku mnozinu BE aj s analyzami.
Pamat nebola problem, tak sme ich citali po vacsich balikoch a joinovali
sme analysis. Totiz cyklovanie po BE + lazy loading bol radovo pomalsi
(nepripustne).
Zoznam BE objektov robim nasledovne:
Criteria criteria = session.createCriteria(BE.class);
...
criteria.addOrder(Order.asc("stopTimestamp"));
criteria.setFetchMode("analysis", FetchMode.JOIN);
return (Collection<BE>) criteria.list();
Problem je, ze vygenerovany SQL konci takto:
... order by analysis2_.start_ts, this_.STOP_TS asc
(analysis2 je analysis tabulka, this_ je samozrejme be tabulka)
Ja by som samozrejme potreboval primarne radit podla stop_ts. Je na to
nejaky liek?
Virgo