2016-10-18 2 views
1

У меня есть домен A, имеющий hasMany домены B и C. B принадлежит ToA и C имеют hasOne отношения A.Как каскад удалить в Grails?

Я удаляю A, но это вызывает ошибку «Нарушение ограничения ссылочной целостности:».

Теперь я хочу, чтобы при удалении A его связанные записи B и C также удаляли.

+1

Установили ли вы 'belongTo' на доменах B и C? Затем каскадирование должно происходить автоматически: http://docs.grails.org/latest/ref/Database%20Mapping/cascade.html – alexanderfranke

+0

В B принадлежит To установлено и в C hasOne установлено. –

+0

Сначала вам нужно удалить домены отношений, тогда вы можете удалить свой основной домен –

ответ

0

попробовать что-то вроде этого:

@Transactional 
    void deleteA(Long id) { 
      A a = A.get(id) 
      def listOfB = B.findAllByA(A) 
      listOfB*.delete() 
      def listOfC = C.findAllByA(A) 
      listOfC*.delete() 
      A.delete(flush: true) 
     } 
+0

Большое вам спасибо –

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