Maintaining both sides of self-referential many-to-many relationship in Grails domain object
        Posted  
        
            by Ali G
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Ali G
        
        
        
        Published on 2010-03-25T16:32:13Z
        Indexed on 
            2010/03/25
            19:33 UTC
        
        
        Read the original article
        Hit count: 637
        
I'm having some problems getting a many-to-many relationship working in grails. Is there anything obviously wrong with the following:
class Person {
    static hasMany = [friends: Person]
    static mappedBy = [friends: 'friends']
    String name
    List friends = []
    String toString() {
        return this.name
    }
}
class BootStrap {
     def init = { servletContext ->
        Person bob = new Person(name: 'bob').save()
        Person jaq = new Person(name: 'jaq').save()
        jaq.friends << bob
        println "Bob's friends: ${bob.friends}"
        println "Jaq's friends: ${jaq.friends}"
     }
} 
I'd expect Bob to be friends with Jaq and vice-versa, but I get the following output at startup:
Running Grails application..
Bob's friends: []
Jaq's friends: [Bob]
(I'm using Grails 1.2.0)
© Stack Overflow or respective owner