我在使用grails中获得多对多关系时遇到了一些问题.以下是否有任何明显错误:
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}" } }
我希望Bob与Jaq成为朋友,反之亦然,但我在启动时得到以下输出:
Running Grails application.. Bob's friends: [] Jaq's friends: [Bob]
(我使用的是Grails 1.2.0)
解决方法
这似乎有效:
class Person { static hasMany = [ friends: Person ] static mappedBy = [ friends: 'friends' ] String name String toString() { name } }
然后在BootStrap中:
class BootStrap { def init = { servletContext -> Person bob = new Person(name: 'bob').save() Person jaq = new Person(name: 'jaq').save() jaq.addToFriends( bob ) println "Bob's friends: ${bob.friends}" println "Jaq's friends: ${jaq.friends}" } }
我得到以下内容:
Running Grails application.. Bob's friends: [jaq] Jaq's friends: [bob]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。