J'ai été d'essayer de se familiariser avec mise en veille prolongée de l'attribut inverse, et il semble être juste une de ces choses qui est conceptuellement difficile.
L'essentiel de l'information que je reçois est que lorsque vous avez une entité mère (Parents, par exemple), qui présente une collection d'objets Enfants à l'aide d'un un-à-plusieurs, la cartographie, la configuration inverse=true sur la cartographie indique à Hibernate de "l'autre côté (l'Enfant) a la responsabilité de mettre à jour lui-même pour maintenir la référence de clé étrangère dans son la table".
En faisant cela semble avoir 2 avantages quand il s'agit de l'ajout d'Enfants de la collection dans votre code, puis en enregistrant le Parent (avec cascade-tous ensemble): vous enregistrez une inutile de frapper sur la base de données (car sans inverse de jeu, Hibernate pense qu'il y a deux endroits pour mettre à jour le FK relation), et d'après les docs:
Si la colonne de l'association est déclarée PAS NULL, NHibernate peut provoquer les violations de contrainte lorsqu'il crée ou les mises à jour de l'association. Pour éviter ce problème, vous devez utiliser un bidirectionnel association avec l' beaucoup apprécié la fin (le jeu ou le sac) marqué comme inverse="true".
Tout cela semble de bon sens jusqu'à présent. Ce que je ne comprends pas, est ce: quand souhaitez-vous PAS souhaitez utiliser inverse=true sur un un-à-plusieurs relation?