如何在 gorm-hibernate 中保存具有 hasMany 属性的域



我有一个具有许多用户角色的用户,但是当我尝试保存用户并添加角色时,保存过程中出现验证错误,我不明白为什么。

class User ... {
static hasMany = [roles:UserRoles]

}

然后我有一个域用户角色

class UserRoles ... {
 Roles role 
 static  belongsTo = [user: User]

    UserRoles(Role r){
        role = r
    }

 }

角色域如下所示

 class Role ... {

 String name
    Role(String name) {
        this.name = authority
    }

 }

现在当我尝试保存用户时

我有这样的代码

Role r = findRole()
user.addToRoles(roles: new UserRole(r))
user.save(flush:true, failOnError: true)

但它返回一个错误,说

Field error in object 'com.api.v1.User' on field 'roles': rejected value [[Ljava.lang.String;@5871447d]; codes [com.api.v1.User.roles.typeMismatch.error,com.api.v1.User.roles.typeMismatch,user.roles.typeMismatch.error,user.roles.typeMismatch,typeMismatch.com.api.v1.User.roles,typeMismatch.roles,typeMismatch.java.util.Set,typeMismatch]; arguments [roles]; default message [Could not find matching constructor for: com.api.v1.UserRoles(java.lang.String)]

u 有错误的 fct addToRoles(( 输入错误

Role r = findRole()
--//user.addToRoles(roles: new User(r))
//++
user.addToRoles(roles: r)
user.save(flush:true, failOnError: true)

相关内容

  • 没有找到相关文章

最新更新