当前使用版本(必填,否则不予处理)

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

TypeHandler 注册时,无法携带列表内部实体泛型

重现步骤(如果有就写完整)

  1. 数据库字段类型为JSON(实际存放JsonArray格式内容eg:[{"id":"123"}],并非Json格式{"id":"123"})
  2. JAVA实体中的属性使用List 类型接收
  3. 正常入库保存
  4. 通过ID查询,无法将结果映射到TestEntity中 MyBatis-Plus 数据库字段类型为JSON,JAVA属性为List实体列表,查询结果无法自动映射 MyBatis-Plus 数据库字段类型为JSON,JAVA属性为List实体列表,查询结果无法自动映射

临时解决措施,自定义TypeHandler,绑定List的泛型类型 MyBatis-Plus 数据库字段类型为JSON,JAVA属性为List实体列表,查询结果无法自动映射 MyBatis-Plus 数据库字段类型为JSON,JAVA属性为List实体列表,查询结果无法自动映射

报错信息

Comment From: miemieYaho

只能你这样做

Comment From: fullee

实际上只需要设置一下resultMap

<result column="retail_ids" property="retailIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>


<select id="getSTLicenseGridListByCoordinate" resultMap="LicenseGridInfoResultMap">
    SELECT
    <include refid="Base_LicenseGridInfo_Column_List"/>
    FROM tg_license_grid_info gi WHERE ST_INTERSECTS(gi.coordinates,ST_MakeEnvelope(POINT(#{lt.lng}, #{lt.lat}),POINT(#{rb.lng}, #{rb.lat}))) = 1
</select>

Comment From: Kagenui-yozuru

实际上只需要设置一下resultMap

```

```

补充一下,需要在实体类上指定resultMap才能在mybatisPlus范围内生效(我是这样的), 具体做法就是在mapper.xml文件类定义好resultMap后,在实体类的@TableName注解里把resultMap的id填到resultMap属性中