私はhasManyドメインBとCを持つドメインAを持っています。BはbelongsTo AとhasOne Aの関係を持っています。Grailsでカスケード削除するには?
私はAを削除していますが、「参照整合性制約違反:」というエラーが発生します。
今私はAを削除するときに、関連するBレコードとCレコードも削除します。
私はhasManyドメインBとCを持つドメインAを持っています。BはbelongsTo AとhasOne Aの関係を持っています。Grailsでカスケード削除するには?
私はAを削除していますが、「参照整合性制約違反:」というエラーが発生します。
今私はAを削除するときに、関連するBレコードとCレコードも削除します。
このような何か試してみてください: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)
}
ありがとう –
を使用すると、ドメインBとCに 'belongTo'を設定することがありますか?カスケーディングは自動的に行われます。http://docs.grails.org/latest/ref/Database%20Mapping/cascade.html – alexanderfranke
BのbelongsToが設定され、CのhasOneが設定されています。 –
まず、関係ドメインを削除してから、マスタードメインを削除する必要があります –