java @TableField(exist = false) 和@TableField(select = false) 的区别

@TableField(exist = false) 和 @TableField(select = false) 都是 MyBatis-Plus 框架中用于标注实体类字段与数据库表字段映射关系的注解,但它们的作用有所不同:

1.@TableField(exist = false)

这个注解表示该字段在数据库表中不存在。当使用 MyBatis-Plus 的自动注入 SQL 语句功能时,会忽略这个字段,不会将其包含在 SQL 查询语句中。通常用于实体类中需要额外计算或处理的字段,而不需要与数据库表中的字段进行映射。

@TableField(exist = false)
private String virtualField;

2.@TableField(select = false)

这个注解表示在查询时不会选择该字段。也就是说,当使用 MyBatis-Plus 的查询方法查询数据库时,这个字段的值不会被包含在查询结果中。但是,这个字段在数据库表中是存在的,可以在插入、更新等操作中被处理。

@TableField(select = false)
private String ignoredField;

总之,exist = false 是用于标识实体类字段在数据库表中不存在,而 select = false 是用于标识在查询时不选择该字段的值,但该字段在数据库表中是存在的。

posted @ 2024-06-20 16:30  寒冷的雨呢  阅读(34)  评论(0编辑  收藏  举报