Como executar a consulta Nibernate Icriteria com setFetchMode (preguiçoso) quando preguiçoso = false definido no HBM?
-
26-09-2019 - |
Pergunta
Eu gostaria de executar uma consulta de critérios com associações preguiçosas para muitos para um. Essas associações são definidas como lazy="false"
No HBM. É porque o usamos ansiosamente 90% do projeto.
Mas existem algumas consultas 'grandes' que devem ser executadas como 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">
Configuração de critérios:
criteria.SetFetchMode("DestinationElement", FetchMode.Lazy);
Funciona da maneira oposta, mas não dessa maneira. Ele busca ansiosamente.
O LOC tem 20k+, e seria um enorme refattor fazê -lo da maneira oposta.
Como posso forçar isso a buscar preguiçosamente quando quero e buscar ansiosamente todas as outras vezes?
Desde já, obrigado!
Solução
lazy="false"
No HBM não pode ser substituído em uma consulta (além de ser uma má idéia 99% das vezes)
Você terá que alterar seu código.