J'ai J'ai ToOObject.Class strong>: p> Je sauvegarde un objet dans la base de données: p> et les tables ressemblent à ceci: p>
3 Réponses :
Étant donné que l'objet est déjà enregistré et qu'un ID attribué est attribué, JPA suppose que vous voulez dire la même entrée dans la base de données. Vous devez cloner l'objet:
SomeRepository.save(a); A aClone = new A(a); SomeRepository.save(aClone);
Je ne suis pas sûr à 100% mais cela étendra une table avec de nouveaux objets?
Non, c'est juste un constructeur de copie. Étant donné que la classe est déjà "enregistrée" avec la mise en œuvre de la JPA, vous avez besoin d'une nouvelle instance. J'ai également étendu l'exemple pour inclure le clonage des instances de quoobus.
Hibernate gérer des relations unidirectionnelles très inefficaces s'il vous plaît essayer d'utiliser la relation bidirectionnelle.
En ce qui concerne le problème ci-dessus, vous n'avez pas besoin de troisième table ici, vous pouvez éviter la création d'une troisième table en ajoutant @JOINCOLUMN comme ci-dessous: p> ceci va ajouter une colonne " fk_a_id "dans une table quelque_Object. p> p>
J'ai ajouté: (NULLLABLE = FALSE) Paramètre pour @JOINCOLUM Le problème est résolu. Le nom n'est pas nécessaire.
Oui cette contrainte est nécessaire.
J'ai ajouté: donc au-dessus de la liste Il y a maintenant: p> < Pré> xxx pré> p> (nullable = false) code> Paramètre pour @JOINCOLUM code> Le problème est résolu.
Pourquoi voulez-vous une table différente pour la relation onetomanany?
@A_HORSE_WITH_NO_NAME J'utilise jpa.
@Tarun Je ne sais pas ce que tu veux dire. Y a-t-il une autre façon que je pourrai faire cela?
Je veux dire, s'il s'agit d'une relation une à plusieurs, vous pouvez enregistrer l'identifiant d'une table B sous forme de clé étrangère au lieu d'avoir une table différente A_B.
@Tarun j'ai ajouté A_ID comme une clé étrangère à la table B. Première sauvegarde est stockée correctement, mais avec une seconde sauvegarde, j'ai obtenu: valeurs null pour une colonne A_ID?