2010-03-19 5 views
0

j'ai les classes domaines suivants:accès à la relation Tableau dans Grails

class Posts{ 
     String Name 
     String Country 
     static hasMany = [tags:Tags] 

     static constraints = { 
     } 
    } 


class Tags{ 

    String Name 
    static belongsTo = Posts 
    static hasMany = [posts:Posts] 
    static constraints = { 
    } 
    String toString() 
    { 
     "${TypeName}" 

    } 
} 

Grails crée une autre table dans la base de données à savoir Posts_Tags.
Ma condition requise est:

E.g. 1 poste a 3 tags. Ainsi, dans la table Posts_Tags, il y a 3 lignes.

Comment puis-je accéder à la table Posts_Tags directement dans mon code afin de pouvoir manipuler les données ou y ajouter d'autres champs.

Répondre

0

Utilisez l'API groovy sql normale. Pour un exemple de la façon d'obtenir un groovy objet SQL et d'exécuter des requêtes SQL voir this

+0

Cela ne répond pas à la 2ème partie de sa question sur la façon d'ajouter des champs supplémentaires à la table de jointure –

+0

Oui, si vous avez un objet SQL groovy, vous pouvez utiliser les instructions alter table, insert, etc – Jared

2

Si vous souhaitez accéder à la table de jointure (Posts_Tags) directement, ou ajouter des propriétés à elle, vous devez le définir comme un PostTag séparé domaine classe. Vous divisez ensuite votre relation many-many entre Post et Tag en 2 relations un-à-plusieurs (une de Post à PostTag et une de Tag à PostTag).

Voici un comprehensive example sur comment effectuer le mappage et ajouter des propriétés à la table de jointure - dans cet exemple Membership est la table de jointure.

+0

exemple de lien indique "Vous n'êtes pas autorisé" même après l'enregistrement –

Questions connexes