2016-09-05 10 views
0

App Info:Grails: Как удалить запись из многих отношений?

  • Grails Версия: 3.1.8
  • Groovy Версия: 2.4.6
  • JVM версии: 1.8.0_60

Мой класс домен:

class AgePhase { 

    String agePhase 

    static hasMany = [assessors: Assessor] 

Другие категории доменов:

class Assessor { 

    static belongsTo = [AgePhase] 

    static hasMany = [agePhase: AgePhase] 

В моей базе данных У меня есть Assessor, AgePhase и таблица оценки join/agePhase.

Как удалить запись из таблицы оценщика/agePhase на основе идентификатора agePhase и идентификатора Assessor?

+0

Разве это не так просто, как 'Assessor.findAllByAgePhase (AgePhase.get (agePhaseID)) * .delete() '? –

ответ

-1

Если вы хотите удалить запись из таблицы реляционной на основе agePhaseId и assessorId, вы можете попробовать следующее:

def agePhase = AgePhase.get(agePhaseId) 
def assesor = agePhase.assessors.find{ it.id == assessorId } 
agePhase.removeFromAssessors(assesor) 

ссылки в документации Grails: removeFrom

+0

, чтобы вызвать поиск во всех оценщиках, это плохой стиль, потому что вы запрашиваете у всех аналитиков в базе данных. – Bernhard

0

вам нужно вызвать removeFrom на объект AgePhase (потому что он принадлежит классу) и предоставить объект Assessor в качестве аргумента.

Пример:

def agePhase = AgePhase.get(agePhaseId) 
def assessor = Assessor.get(assessorId) 

agePhase.removeFromAssessors(assessor) 

Это приведет к удалению записи в jointable из agePhaseId и assessorId

 Смежные вопросы

  • Нет связанных вопросов^_^