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

ptw-cwl 2024-10-07 14:35:09 阅读 70

<code>@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 是用于标识在查询时不选择该字段的值,但该字段在数据库表中是存在的。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。