7
我正在關注Grails in Action中的示例。我有一個理解addTo*()
函數如何工作的問題。Grails addTo *澄清
我有一個簡單的域:用戶,郵政,標記和下列關係:
- 用戶1到-M後
- 用戶1到-M標籤
- 後M-到-M標籤
當我運行下面的代碼(第一種情況):
1. def user = new User(userId: 'joe', password: 'secret').save()
2. def tagGroovy = new Tag(name: 'groovy')
3. def tagGrails = new Tag(name: 'grails')
4. user.addToTags(tagGroovy)
5. user.addToTags(tagGrails)
6.
7. def groovyPost = new Post(content: 'A groovy post')
8. user.addToPosts(groovyPost)
9. groovyPost.addToTags(tagGroovy)
10.
11. User.get(1).tags.each {println it.id + " " + it.name}
12. User.get(1).posts.each {println it.id + " " + it.content + " " + it.dateCreated}
我得到這個:
null grails
null groovy
null A groovy post null
如果我改線4,5,和8:
4. user.addToTags(tagGroovy).save(flush: true)
5. user.addToTags(tagGrails).save(flush: true)
8. user.addToPosts(groovyPost).save(flush: true)
我得到這個:
2 grails
1 groovy
1 A groovy post Tue Nov 22 21:00:00 WET 2011
有人能解釋爲什麼第一種情況下id
和dateCreated
屬性不會持久?