Comment faire pour exécuter la requête Nhibernate ICriteria avec setFetchMode (Lazy) lorsque paresseux = false défini dans HBM?
-
26-09-2019 - |
Question
Je voudrais d'exécuter une requête de critères avec lazy many-to-one. Ces associations sont définies comme lazy="false"
dans le HBM. C'est parce que nous l'utilisons avec impatience 90% du projet.
Mais il y a quelques « grandes » questions qui devraient fonctionner comme 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">
Configuration de critères:
criteria.SetFetchMode("DestinationElement", FetchMode.Lazy);
Il fonctionne de la manière opposée, mais pas de cette façon. Il va chercher avec impatience.
Le COL est 20K +, et ce serait une refactor massive pour faire de la manière inverse.
Comment puis-je forcer ce pour aller chercher paresseusement seulement quand je veux, et chercher avec impatience toutes les autres fois?
Merci à l'avance!
La solution
lazy="false"
dans le HBM ne peut pas être surchargée dans une requête (en plus d'être une mauvaise idée 99% du temps)
Vous devrez changer votre code.