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
あなたはその後、得ることができる必要がありますこのコードブロックでは、あなたが間違ったオブジェクトにemail
、firstName
とlastName
を割り当てているように見えます