【发布时间】:2012-02-27 20:35:41
【问题描述】:
在我的 Grails 域中,Artist 和 MusicianDetails 之间存在 1:1 的关系
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`))
在 Artist 和 MusicianDetails 之间定义 1:1 关系以便删除前者级联到后者的正确方法是什么?
【问题讨论】:
标签: hibernate grails groovy grails-orm