2010-11-08 5 views
0

Je voudrais m'assurer qu'une entité est contenue dans au plus une entité unique. Est-il possible de vérifier cela à partir des fichiers de mapping? En SQL terrain, je veux m'assurer que si une table a une clé étrangère, il n'y a pas d'entrées répétées dans la colonne clé étrangère.Vérifier si l'entité NHibernate est contenue dans plusieurs entités

Merci!

Jorge

Répondre

2

Assurez le FK unique:

<many-to-one unique="true" /> 

Ou, du côté de la collection:

<key> 
    <column unique="true"/> 
</key> 

(j'omis tous les attributs non liés au problème)

+0

Merci, Diego. Mais, je suis un peu confus. Ma compréhension est qu'une relation "plusieurs-à-un" se produit quand un objet peut être utilisé par de nombreux autres objets. Est-ce que "unique = vrai" ne contredit pas cette relation? – Jacko

+0

Une relation plusieurs-à-un avec une contrainte unique est effectivement une relation un-à-un. Ne lisez pas trop dans les noms. –

+0

Merci beaucoup, Diego. La raison pour laquelle je pose cette question est parce que j'essaie de construire un cache de second niveau plus intelligent pour mon application. L'implémentation par défaut expulse la requête du cache si une table référencée par une requête a été mise à jour. Mais, je suppose que si je mets à jour une entité qui est contenue par au plus une autre entité, alors cette autre entité devrait déjà être dans le cache d'entité, et ainsi je pourrais réexécuter la requête en mémoire sur les entités dans le cache d'entité , et ne pas avoir à frapper à nouveau la base de données pour mettre à jour la requête. Est-ce que cela semble faisable? Mon application est la seule à mettre à jour la base de données. – Jacko

Questions connexes