У меня есть классы доменов:
package mnm.schedule
class Project {
static hasMany = [ tasks : Tasks , users : User ]
String name
static constraints = {
name(nullable:false)
tasks(nullable:true)
}
}
User.groovy
package mnm.schedule
import org.example.*;
class User extends SecUser {
//relationships. . . .
static belongsTo = [ company : Company, role : Role, resource : Resource]
static hasMany = [ holidays : Holiday, tasks : Tasks, pt:String ]
Profile profile
Project project
String username
String password
boolean enabled
List pt
boolean ptTaken
}
У меня есть файл представления, внутри которого у меня есть фрагмент кода:
<g:each in="${ans}">
<li>${it.username.toUpperCase()}<g:checkBox name="checkedUsers" value="${ans}" checked="false" /></li>
</g:each>
Переменная ans является массивом, в котором есть объекты пользователя.Я использую g: checkBox, чтобы конечный пользователь мог «проверить» имя нужного пользователя. Когда пользователь отправляет эту форму, я выполняю это действие в своем контроллере:
def users = params.checkedUsers
users.each { index ->
new Project(name:"testing",users:index).save()
}
Идея состоит в том, что мне нужнодобавьте пользователя проекта (через флажок) в проект.
Но это выдает ошибку как:
2012-02-03 10:13:08,173 ["http-bio-8080"-exec-4] ERROR errors.GrailsExceptionResolver - TypeMismatchException occurred when processing request: [POST] /scheduleNew/project/project - parameters:
_checkedUsers:
_checkedUsers:
Add: Add
checkedUsers: anto2
Provided id of the wrong type for class mnm.schedule.User. Expected: class java.lang.Long, got class java.lang.String. Stacktrace follows:
Message: Provided id of the wrong type for class mnm.schedule.User. Expected: class java.lang.Long, got class java.lang.String
Что происходит?Где я ошибся?