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



Odpovedet emailem