Boolean类型映射问题 mysql 表字段是 is_deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '删除标记', java 实体 属性 Boolean isDeleted; 实体 已经有getIsDeleted() 还需需要增加isDeleted方法

异常信息 ReflectionException: There is no getter for property named 'deleted' in 'class 【实际属性是 isDeleted】 实际代码 @TableField("is_deleted") private Boolean isDeleted;

public Boolean isDeleted() { return isDeleted; }

public Boolean getIsDeleted() { return isDeleted; }

public void setIsDeleted(Boolean isDeleted) { this.isDeleted = isDeleted; }

Comment From: 7788jay

我也碰到这个问题,解决了?

Comment From: qmdx

查看文档问题部分mp.baomidou.com

Comment From: FirokOtaku

使用 Postgres 库时遇到类似问题.

实体类基类中包含的 Boolean isDelete 字段在使用 QueryWrapper#eq 方法时, 无法正常被映射为正确的数据库数据类型.

@Data
class BaseBean
{
  @TableField(jdbcType = JdbcType.BIT)
  private Boolean isDelete;
}
var qw = new QueryWrapper<>(classEntity)
  .lambda()
  .eq(BaseBean::getIsDelete, 1);
var list = service.list(qw);

报错提示为:

Caused by: org.postgresql.util.PSQLException: 错误: 操作符不存在: bit = interger
建议:没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.

项目所用依赖为

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>3.1.4</version>
  <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.5.3.2</version>
</dependency>
<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.6.0</version>
</dependency>