计算属性目录
2024/4/16大约 2 分钟
简介
什么叫做计算属性,计算属性就是非简单的包装类型或者基本类型,比如: 估顾名思义这个属性是通过转换函数或者计算得出的属性
计算属性可以分成两大类分别是内存计算属性、数据库计算属性
区别
| 计算属性 | vo | 区别 |
|---|---|---|
| 内存计算属性 | 如果entity添加有@Column那么在vo或dto上也要加对应的conversion | 函数作用到取出来的值之后,会在java层面将函数作用到值上 |
| 数据库计算属性 | vo或dto仅属性名一致或者手动as即可 | 函数作用到数据库层面取出来的值已经是转换好了的 |
内存计算属性
json属性private UserExtra userExtra;用来描述数据库存储的字符串或者json类型,映射到java的对象上,支持筛选,返回排序等集合属性private List<UserLabels> userLabels;用来描述数据库存储的字符串或者json类型,映射到java的集合上,支持筛选,返回排序等- 枚举属性
private UserStatusEnum userStatus;用来描述数据库存储的字符串或者数字类型,映射到java的枚举属性,支持筛选,返回排序等
数据库计算属性
- 增强属性
private String idCard;写入数据库时会自动添加base64编码读取会自动进行解码,支持筛选,返回排序等 - 简单计算属性:复合属性
private String fullName;他是有firstName和lastName组合,再比如年龄,他是由当前时间和生日的相减生成的动态值,支持筛选,返回排序等 - 状态计算属性:比如您有一张证书表,证书表存在证书过期时间,那么证书有个动态的隐藏属性叫做状态,证书是否过期可以通过这个状态来实现
- 复杂计算属性:由子表或者额外表数据构成,比如
private Integer StudentSize;加入班级和用户是一对多,那么这个属性用来描述班级下有多少学生人数,支持筛选排序返回 - 函数自增属性:该属性可以做到数据由数据库生成比如数据库函数存在
mysqlNextId()或者gis中由数据库生成的函数那么适用于改方法仅插入时生效
内存计算属性和数据库计算属性的区别是