10
votes

Comment ajouter une clé primaire distincte à une table de jointure dans Hibernate

J'ai une question sur Hibernate Mappings de plusieurs tomany. J'ai deux classes A et B et le mappage entre eux est un mappage multiple résolu par Hibernate: xxx

Comme vous pouvez le constater, la table de jointure que j'utilise est C. Les clés étrangères à A et B sont "a_id" et "b_id". Ma compréhension est que Hibernate crée une clé primaire composée avec A_ID et B_ID pour la table C.

Je ne veux pas avoir une entité C dans mon modèle. Mais au lieu d'une clé primaire composée sur la table C, j'aimerais avoir une ID générée et une contrainte unique sur les champs A_ID et B_ID.

est-il possible de dire à Hibernate d'utiliser une clé primaire distincte? Sans ajouter une entité c?

J'apprécierais toute aide.

Merci beaucoup!


0 commentaires

3 Réponses :



1
votes

mais au lieu d'une clé primaire composée sur la table C, j'aimerais avoir une ID générée et une contrainte unique sur les champs A_ID et B_ID.

Normalement la clé primaire du jointotable est constitué de la combinaison des deux clés étrangères. Au moins, c'est ce que JPA générerait. Mais si vous n'utilisez pas le fournisseur JPA pour générer le modèle et si le PK peut être généré par la base de données (à l'aide d'une colonne identité , un déclencheur, etc.), vous devriez pouvoir utiliser La table C pour votre Association de typeTomany (sans avoir à introduire une entité supplémentaire et à transformer la relation dans deux onetomanan ). Avez-vous réellement essayé?


0 commentaires

8
votes

Vous devriez le faire comme ça. Mais il ne peut être appliqué que pour la liste (non pour les ensembles) xxx


0 commentaires