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 是用于标识在查询时不选择该字段的值,但该字段在数据库表中是存在的。
择善人而交,择善书而读,择善言而听,择善行而从。