Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Attenzione ai fetch="join" associati alle criteria query in nhibernate

Una delle sorpese che si possono avere con nhibernate si ha quando si crea una classe con un associazione uno a molti e la si mappa con una bag o map con la strategia di fetch JOIN. Se si fa una CriteriaQuery si noterà che gli elementi vengono restituiti duplicati. Es. se io ho l'entità Ordine che ha una bag di LineaOrdine e faccio un fetch join quando vado ad esempio a fare una criteria query recuperando tutti gli ordini di una certa data, trovo ordini duplicati. Se l'ordine id X ha 10 linee ordine mi trovo 10 riferimenti all'entità ordine con id X.

Questa cosa è spiegata bene nel libro Java PErsistence With Hibernate, la soluzione è semplicissima, si deve specificare all oggetto criteria un trasformer che prende solamente i nodi root distinti.

mycriteria.SetResultTransformer(NHibernate.CriteriaUtil.DistinctRootEntity);

In questo modo nhibernate filtra i risultati e non da più duplicati ;)

Alk.

Print | posted on mercoledì 4 aprile 2007 12:50 |

Feedback

Gravatar

# re: Attenzione ai fetch="join" associati alle criteria query in nhibernate

Contento di essere stato utile.

Alk.
10/08/2007 19:09 | Gian MAria
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET