Mybatis plus @TableName实体中添加非数据库字段报错,如增加请在字段上加注解 @TableField(exist = false)

Mybatis plus @TableName实体中添加非数据库字段报错,如增加请在字段上加注解 @TableField(exist = false)

 

否则会出现以下异常:

### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '***' in 'field list'

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Mybatis-Plus,可以使用注解@TableName来指定表名,使用注解@TableField来指定字段名和属性。如果想要忽略某个字段,可以在对应的实体使用注解@TableField(exist=false)来标记该字段不在数据库存在,从而在查询时忽略该字段。例如: ``` @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; @TableField(exist = false) private String password; // 省略getter和setter方法 } ``` 在查询时,可以使用Mybatis-Plus提供的Wrapper类来构建查询条件,例如: ``` QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("name", "张三"); List<User> userList = userMapper.selectList(wrapper); ``` 在这个例子,查询条件是name等于“张三”,由于password字段被标记为不存在,因此在查询结果不会包含password字段。 ### 回答2: Mybatis-Plus是MyBatis的增强工具,它拓展了MyBatis的实用性和易用性。在Mybatis-Plus,可以使用wrapper或者注解的方式来实现忽略查询字段的操作。 使用wrapper实现忽略查询字段,需要创建一个Wrapper对象,在其使用select方法选择想要查询的字段,然后再使用select().excludeColumns方法排除掉不想查询的字段即可。下面是一个使用wrapper的例子: ```java QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.select("id","name","age").excludeColumns("age"); List<User> userList = userMapper.selectList(wrapper); ``` 上述代码,通过select方法选择了id、name、age三个字段,然后使用excludeColumns方法忽略了age字段。 除了使用wrapper,Mybatis-Plus还提供了注解的方式实现忽略查询字段。只需要在实体类的字段添加TableField注解,并设置exist=false即可。下面是一个使用注解的例子: ```java public class User { @TableField(exist = false) private Integer age; } ``` 上述代码,通过TableField注解将age字段设为不存在,即不进行查询。 总之,Mybatis-Plus提供了多种方式实现忽略查询字段,开发者可根据实际情况选择最适合的方式。 ### 回答3: MyBatis-Plus 是 MyBatis 的增强工具,在多种方便的操作方法,提供了忽略查询字段的功能。当我们在使用 MyBatis-Plus 进行查询时,有时候我们只需要返回符合条件的几个字段,而忽略其他的字段。这时候,我们就可以通过给实体类的属性加上 @TableField 注解的属性来实现忽略查询字段。 具体步骤如下: 1. 给实体类需要忽略的字段添加 @TableField(exist = false) 注解。 2. 在查询方法,使用不包含需要忽略字段的 SQL 语句进行查询。 示例代码如下: ``` @TableField(exist = false) private String ignoreField; List<User> userList = userMapper.selectList(new QueryWrapper<User>() .select(User.ID, User.NAME)); // 忽略字段 ``` 在以上示例代码,我们给实体类 User 的 ignoreField 字段添加了 @TableField(exist = false) 注解,来实现忽略查询此字段的功能。接下来,使用 selectList 方法进行查询,使用 QueryWrapper 来添加查询条件,并在其使用 select 方法来指定查询的字段,这里仅查询了 id 和 name 两个字段。 需要注意的是,在使用忽略查询字段的功能时,需要正确使用 select 方法来指定查询的字段,避免因为未正确指定而查询到其他不必要的字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赛赛liangks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值