В моем домене Grails у меня есть отношение 1: 1 между Artist
и MusicianDetails
class Artist {
static hasOne = [musicianDetails: MusicianDetails]
static constraints = {
musicianDetails(nullable: true, unique: true)
}
}
class MusicianDetails {
static belongsTo = [artist: Artist]
}
. Я хочу, чтобы удаления Artist
каскадно связывались с MusicianDetails
.Однако при удалении Artist
с:
Artist.executeUpdate("delete Artist a where a.id = ?", [artistId])
появляется сообщение о нарушении внешнего ключа:
Class
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException
Message
Cannot delete or update a parent row: a foreign key constraint fails
(`festival2`.`musician_details`, CONSTRAINT `FKA0E6B2145ACE528E`
FOREIGN KEY (`artist_id`) REFERENCES `artist` (`id`))
Как правильно определить значение 1: 1 отношение между Artist
и MusicianDetails
такое, что удаляет первый каскад ко второму?