2013-11-11 1 views
0

Я использую консоль grails, чтобы играть с моими отношениями. Я использую физкультуру на книге Grails in Action:addTo * Не сохраняются изменения

У меня есть отношения:

class User { 
    ... 

    Profile profile 

    static hasMany = [posts: Post, tags: Tag, following: User] 

     ... 


User.get(3).addToFollowing(User.get(2)).save()  
User.list().each { print it.following } 

дающего

Null Null [com.grailsinaction.User: 2] Null Null

и снова работает:

User.get(1).addToFollowing(User.get(2)).save()  
User.list().each { print it.following } 

дает

[com.grailsinaction.User: 2] Null Null Null Null

Выглядит как первый addToFollowing теряется ... я забыл что-нибудь?

+1

По умолчанию grails использует базу данных h2 для каждого приложения. запустить базу данных, сбросить и создать новую. Если вы перезапустили приложение, предыдущая запись будет потеряна. – Abs

ответ

1

Попробуйте использовать:

User.get(3).addToFollowing(User.get(2)).save(flush: true) 

объект не будет сохраняться сразу, если не используется флеш аргумент. См. Соответствующий link.