为什么mybatis-plus反向生成的PO均实现了Serializable

实体类为什么要实现Serializable接口_God _lin的博客-CSDN博客

serialVersionUID 是干什么的? - 知乎 (zhihu.com)

 

详细文章见上面两篇,下面是我个人的理解

简而言之 我们实际开发时通常都会用redis这种nosql数据库,所以PO这种存储持久层数据的对象建议实现Serializable接口,如果PO对象继承一个BaseEntity(为了代码降重),那么由BaseEntity统一实现Serializable接口

 

并且每个PO类,最好都要显式声明自己的serialVersionUID 而不要使用mybatis-plus默认生成的或者从父类继承

下图为mybatis-plus默认生成的serialVersionUID

 

常见的手动给类创建唯一序列化号的操作

让IDEA自动给要序列化的类一个唯一标识号

一般流程上看,先由mybatis-plus生成PO,再人为查看PO,提取重复代码形成BaseEntity,这个过程中手动修改每个PO的serialVersionUID似乎也不是什么问题?(或许还有更高明的方法或者插件)

 

serialVersionUID 用于序列化和反序列化时 类的对比,场景为两服务器之间请求数据时,更具体的东西我就没过多了解了

 

如果不存在序列化需求,也就不存在序列化与反序列化中的比对,原则上不声明 serialVersionUID 也是可以的

posted @ 2021-10-04 23:57  夏·舍  阅读(404)  评论(0编辑  收藏  举报