grails 2.2.1에서 hasMany
관계에서 객체를 삭제할 때 이상한 동작이 발생했습니다. 함께을하고있다Grails strange removeFrom * 동작
def lessonInstance = Lesson.get(lessonId)
long id = Long.valueOf(taskId)
def task = Task.get(id)
lessonInstance.removeFromTasks(task)
을 삭제하는 동안 :
삭제 함께 작동하지 있다
def lessonInstance = Lesson.get(lessonId)
long id = Long.valueOf(taskId)
def task = lessonInstance.tasks.find { it.id == id }
lessonInstance.removeFromTasks(task)
나는 모두가 일 것으로 예상하고 지금 궁금 왜 후자의 작품과 먼저 작동하지 않습니다. 다음은 도메인 클래스입니다.
class Lesson{
static hasMany = [tasks:Task]
static hasOne = [skill:Skill]
static constraints = {
tasks(nullable: false, minSize: 1)
skill(nullable: true)
}
}
class Task extends Artefact{
Integer experiencePoints=0
Integer credits=0
static constraints = {
experiencePoints(blank: false, min: 0)
credits(blank: false, min: 0)
}
}
고마워요!
Grails가'get()'과'Lesson.tasks'가로드 된'Task'가 같은 객체라는 사실을 포착하지 않은 것처럼 보입니다. BTW'Task' 또는'Artefact'에'equals()/hashCode()'가 재정의되어 있는지 궁금합니다. –
'Artefact'이 도메인 객체 (서브 클래스 전략 당 테이블) 인 경우, 앞의 경우'def task = Artefact.get (id)'를 사용해 볼 수 있습니까? – dmahapatro
그냥 참고 -'blank : false'는 아무 것도하지 않습니다. –