当前使用版本(必填,否则不予处理)
3.4.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
TypeHandler 注册时,无法携带列表内部实体泛型
重现步骤(如果有就写完整)
- 数据库字段类型为JSON(实际存放JsonArray格式内容eg:[{"id":"123"}],并非Json格式{"id":"123"})
- JAVA实体中的属性使用List
类型接收 - 正常入库保存
- 通过ID查询,无法将结果映射到TestEntity中
临时解决措施,自定义TypeHandler,绑定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属性中