2016-10-18 14 views
1

私はhasManyドメインBとCを持つドメインAを持っています。BはbelongsTo AとhasOne Aの関係を持っています。Grailsでカスケード削除するには?

私はAを削除していますが、「参照整合性制約違反:」というエラーが発生します。

今私はAを削除するときに、関連するBレコードとCレコードも削除します。

+1

を使用すると、ドメインBとCに 'belongTo'を設定することがありますか?カスケーディングは自動的に行われます。http://docs.grails.org/latest/ref/Database%20Mapping/cascade.html – alexanderfranke

+0

BのbelongsToが設定され、CのhasOneが設定されています。 –

+0

まず、関係ドメインを削除してから、マスタードメインを削除する必要があります –

答えて

0

このような何か試してみてください:Grailsのドキュメントは、特にこのためのセクションがある

@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

ありがとう –

関連する問題