2012-02-21 9 views
0

Grailsアプリケーションで作業していて、ShiroUserとUserProfileを結びつけようとしています。 ShiroUserとUserProfileという2つのモデルがあります。私のShiroUserで:ShiroUser用にUserProifleのオブジェクトを保存できません

class ShiroUser { 
    ... ... 
    static hasOne = [profile: UserProfile] 
    static constraints = { 
     email(nullable: false, blank: false, unique: true) 
     profile(nullable: false) 
    } 
} 

そして、私のUserProfile.groovyに、私が持っている:私は新しいShiroUserインスタンスを作成しようとする

class UserProfile { 
    ... ... 
    static belongsTo = [shiroUser:ShiroUser] 

} 

しかし、私のShiroUserController.groovyで、これはそうではありませんとてもうまくいく。ここに私のコードです:

私のアプリケーションに行って、新しいShiroUserを作成しようとすると、オブジェクトを保存することはできません。私は、移行の問題ではないので、私はアプリを実行する前に、スキーマを更新しました。何かご意見は?

// Create a user profile 
    def userProfileInstance = new UserProfile() 
    shiroUserInstance.profile.email = params.email 
    shiroUserInstance.profile.firstName = params.firstName 
    shiroUserInstance.profile.lastName = params.lastName 

代わりにこれを試してみてください:

// Create a user profile 
    def userProfileInstance = new UserProfile() 
    userProfileInstance.email = params.email 
    userProfileInstance.firstName = params.firstName 
    userProfileInstance.lastName = params.lastName 
    shiroUserInstance.profile = userProfileInstance 

あなたはその後、得ることができる必要がありますこのコードブロックでは、あなたが間違ったオブジェクトにemailfirstNamelastNameを割り当てているように見えます

答えて

0

離れて保存するだけでshiroUserInstanceと自動的に保存する必要がありますuserProfileInstanceマッピングが正しく設定されている場合。

関連する問題