dire, par exemple, j'ai eu deux entités: J'ai besoin de spécifier un côté possédant avec JPA. Mais de quel côté devrait être le côté de la propriété? Un article ne dépend pas d'une balise certaine et inversement. Existe-t-il une règle générale pour déterminer quel côté devrait être le côté de la propriété? P> article code> et
tag code> (comme dans un blog typique). Chaque article peut avoir de nombreux étiquettes et chaque balise peut être utilisée par de nombreux articles, il s'agit donc d'une relation classique M: N. p>
6 Réponses :
Dans MHO Ceci est un cas typique où une relation Si vous utilisez une table de jointure, vous pouvez avoir dans votre classe d'article quelque chose comme. P> < Pré> xxx pré> puis dans votre classe de balise p> @manytomany code> est nécessaire.
Merci pour l'exemple. Mais pourquoi est l'attribut mappe code> dans la classe code> classe et non dans la catégorie
code> classe?
Pas une réponse à la question.
Mon point de vue: p>
Cela dépend de votre entreprise. Quelle entité est plus importante dans votre entreprise. P>
Dans votre exemple, je pense que l'article devrait appartenir à la propriété, P>
Chaque relation bidirectionnelle nécessite un côté propre en JPA. Dans le cas particulier de de la spécification JPA: p>
Chaque association à plusieurs à plusieurs a deux
côtés, le côté appartenant et le
non-possession ou inverse, côté. La jointure
La table est spécifiée sur le côté de la propriété.
Si l'association est bidirectionnelle,
de chaque côté peuvent être désignés comme le
côté possédant. p>
blockQuote> plusieursTomanany code>: p>
@jointable code> est spécifié sur le côté de la relation.
9.1.26 ANNOTATION DE PLUSTOMANY H3>
Spécification JPA 1.0 Page de téléchargement de votre commodité.
Il vaut également la peine de mentionner qu'en JPA, le côté de la propriété n'implique pas le côté contenant ou sur le côté qui possède les autres entités. Plus à ce sujet ici: dans Une association bidirectionnelle JPA OneTomany / MétéoTone, ce que l'on entend par "l'inverse de l'association"? p>
Vous choisissez le côté possédant en considérant où vous souhaitez que l'association soit mise à jour. Vous pouvez mettre à jour de De plusieursTomanany Association en un seul endroit (le côté particulier). Donc, le choix dépend de la façon dont vous voulez gérer / mettre à jour vos champs d'association. P>
Chaque fois qu'il y a un m: n mappage, c'est-à-dire un mappage bidirectionnel que nous utilisons @manytomanany code> et
@jointable code> dans notre code.
Pour répondre à cette question "de quel côté devrait posséder la relation" revient aux modèles que vous créez et comment les données doivent être stockées dans la base de données.
de
Généralement, les modifications ne sont propagées que dans la base de données du côté du propriétaire de la relation. Laissez-moi vous expliquer selon votre exemple,
Il existe deux tables / modèles / pojos, article code> et
tag code>.
de
chaque fois qu'un message est affiché, une relation avec les balises
code> est faite. strong>
de
Ou, chaque fois qu'un livre code> est publié, une relation avec l'auteur
est effectuée code> est effectuée. Strong>
de
Donc, le @joincolumn code> devrait aller dans
Publier code> dans votre cas. P>
Je suppose que "à" vous vouliez dire "deux"? Vous pouvez envisager d'éditer votre message pour le rendre plus facilement lisible.