为什么没有EntityDeletingEvent

我们项目使用的事无UI 的模式,遇到了外键删除报错的问题。想着使用 Deleting Event ,但是目前没有改事件,想跟各位讨教,了解一下当初没有开发 EntityDeletingEvent 的原因,之后我们再看看是否自己实现一个 EntityDeletingEvent

你好,欢迎加入社区!

实体事件包含了 Delete type。请参考 实体事件 :: Jmix 文档

根据 event.getType() 是否是 EntityChangedEvent.Type.DELETED 判断。链接的文档中有示例。

是的,EntityChangedEnvent.Type.DELETED 的类型我们也在用,这个也通过文档了解到了,EntityChangedEvent 是语句执行完成,提交前/后的事件,但当前的问题是外键的约束导致delete 语句报错,所以是无法发起EntityChangedEvent的。比如:用户-角色关联表的外键是角色 id,删除角色时,由于用户-角色关联表外键的约束,在执行 delete sql 时产生了异常。此时是无法在EntityChangedEvent中,做一些前置校验的。比如执行delete 时做前置校验。

created Github issue: https://github.com/jmix-framework/jmix/issues/1957