2011-03-22 2 views
1

J'ai un logiciel < -m: n-> où le logiciel est partie principale de la relation (La marque contient mappedby="softwares").données de test dans un fichier yml et relation many-to-many

Ainsi donc, quand je veux importer des données de test à base de données je mets:

Software(software1): 
    title: title1 
    description: descr1 

Software(software2): 
    title: title2 
    description: descr2 

Tag(tag1): 
    title: pay 
    softwares: [software1] 

Tag(tag2): 
    title: pay2 
    softwares: [software2] 

Après ce script exécuté nous avons obtenu toutes les données remplies et nouvelle table Tag_Software sera créé avec les données de relations à l'intérieur.

Mais, pour moi, ce serait plus logique de changer l'ordre de Tag et du logiciel ici:

Tag(tag1): 
    title: pay 

Tag(tag2): 
    title: pay2 

Software(software1): 
    title: title1 
    description: descr1 
    tags: [tag1] 

Software(software2): 
    title: title2 
    description: descr2 
    tags: [tag2] 

à savoir Je peux créer un tag séparément, et lors de la création d'un logiciel, il suffit de mettre ce tag dans ce lien de création de logiciel. (Cela devrait fonctionner, car cela fonctionne dans Java Code). Mais cela ne fonctionne pas ici - en conséquence, nous avons une table Tag_Software vide.

Pouvez-vous expliquer ce comportement? Ou comment le faire mieux?

Répondre

1

Je pense que vous avez vous-même répondu à la question. Vous dites que:

ont un logiciel < -m: tag n> où le logiciel fait partie principale de la relation (balise a mappedBy = "logiciels").

Cela signifie que l'attribut «logiciels» gère le rel et vous devez y ajouter les liens. Si vous les ajoutez à l'autre extrémité, le rel ne sera pas établi (comme vous l'avez vu).

Si vous voulez changer, modifier le mappedBy aux balises

Questions connexes