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