Come eseguire query di NHibernate ICriteria con setFetchMode (pigro) quando pigro = false definiti in HBM?
-
26-09-2019 - |
Domanda
Mi piacerebbe eseguire una query criteri con le associazioni pigri molti-a-uno. Queste associazioni sono impostati come lazy="false"
nel HBM. È perché lo usiamo con impazienza il 90% del progetto.
Ma ci sono alcuni 'grandi' le query che devono essere eseguiti come lazy="proxy"
.
HBM:
<many-to-one name="DestinationElement" class="X" column="DstElemId" not-null="true" unique="false" cascade="save-update" outer-join="auto" fetch="select" lazy="false" index="IDX_Ass_DestElem">
impostazione Criteri:
criteria.SetFetchMode("DestinationElement", FetchMode.Lazy);
Si lavora in senso opposto, ma non in questo modo. Si recupera con entusiasmo.
Il LOC è 20K +, e che sarebbe una massiccia refactoring di farlo nel modo opposto.
Come posso forzare questo per andare a prendere pigramente solo quando voglio, e prendere con entusiasmo tutte le altre volte?
Grazie in anticipo!
Soluzione
lazy="false"
nel HBM non può essere ignorato in una query (oltre ad essere una cattiva idea il 99% del tempo)
Si dovrà modificare il codice.