我有一个具有hasMany UserRoles的用户,但是当我尝试保存一个User和addToRole时,保存期间出现验证错误,我无法理解原因。
class User ... {
static hasMany = [roles:UserRoles]
}
那我有一个域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)]
答案 0 :(得分:0)
您输入的fct addToRoles()输入错误
Role r = findRole()
--//user.addToRoles(roles: new User(r))
//++
user.addToRoles(roles: r)
user.save(flush:true, failOnError: true)