九Spring Data MongoDB中的@DBRef 注解以及生命周期事件

1问题:

映射框架不支持存储父子关系以及嵌入在其他文档中的文档。一般做法是将它们分开存储,并使用DBRef查阅文件。

注意:映射框架不处理级联操作。例如-如果我们触发存储在父级上,不会自动保存子级--如果我们也要保存子文件,则需要显式地触发对它的保存。

2声明周期事件

SpringDataMongoDB发布一些非常有用的生命周期事件,例如在转换之前,在保存之前,在保存之后,在加载之后在转换之后。

3使用方法

要拦截其中一个事件,我们需要注册一个文摘映射EventListener并覆盖这里的一个方法。当事件被触发时,我们的侦听器将被调用,方法将被执行

4demol

(1)案例:保存用户信息(Email信息嵌套)

(2)在 实体进入转换提之前,我们可以监听onBeforeConvert事件

(3)将监听器注册到MogoConfig中,或在xml中配置该监听器

config中注册
xml配置方式

(4)自定义一个级联保存注解

(5)在自定义监听器中处理字段不必映射到实体中

(6)我们可以使用反射,在这些字段上使用回调

注意:字段上需要同时有DBRef注解和CascadeSave注解

(7)FieldCallback类中要检查子级是否有@Id注解

(8)测试

(9)查看数据库

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容