是否可以使用GORM映射以下内容?
我希望在删除某个人时摆脱所有相关事件。
Person对象不应该有事件的链接。(我想避免在Person域上使用hasMany
)
class Person {
String username
}
class Event {
String description
static belongsTo = [person:Person]
}
我在执行person.delete()
时遇到“参照完整性约束违规”,因为在删除人员之前不会删除事件。
答案 0 :(得分:2)
如果不使用hasMany
,我认为这是不可能的(说到哪,你为什么要避免这种情况?)
Hibernate只沿着已定义的关联级联。如果A知道 关于Bs没什么,你用A做什么都不会影响Bs。
使用static hasMany
和bam,问题已修复。
修改强>
我认为您可以实现此目的的唯一方法是在beforeDelete
类上使用Person
删除所有关联的Event
,即
class Person {
def beforeDelete() {
def events = Event.findAllByPerson(this)
for (e in events) {
e.delete()
}
}
}
答案 1 :(得分:0)
以上不起作用
为什么不定义无引用映射:
class Person {
String username
static hasMany=[Events]
}
这种方式没有事件与人的实际绑定,但一个人可以有很多事件