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>