Как сохранить домен со свойством hasMany в gorm-hibernate - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть пользователь с hasMany UserRoles, но когда я пытаюсь сохранить пользователя и 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)

но возвращает ошибку: 1015

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)]

1 Ответ

0 голосов
/ 24 апреля 2019

неверный ввод fct addToRoles ()

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