SQL语句:
select distinct
advice_no,
time(cure_begin_time) as cure_begin_time,
time(cure_end_time) as cure_end_time,
cure_week_day
from cure_schedule where delete_flag=0
SQL查到结果是

mybatis映射文件XML的resultMap是
-------修改前------
<resultMap id="CureInfo" type="com.aadata.yiyang.entity.request.CureScheduleCreateCureInfo">
<result property="adviceNo" column="advice_no" />
<result property="cureBeginTime" column="cure_begin_time" />
<result property="cureEndTime" column="cure_end_time" />
<collection property="cureWeekDay" ofType="Long" column="cure_week_day"/>
</resultMap>
但是返回Java对象是
"adviceNo": "2023040194",
eginTime": "10:00:00",
"cureEndTime": "10:20:00",
"cureWeekDay": [
2023040194,
2023040194,
2023040194
]
如果去掉adviceNo字段则会报空指针错误。
解决方法:
-------修改后------
<resultMap id="CureInfo" type="com.aadata.yiyang.entity.request.CureScheduleCreateCureInfo">
<result property="adviceNo" column="advice_no" />
<result property="cureBeginTime" column="cure_begin_time" />
<result property="cureEndTime" column="cure_end_time" />
<collection property="cureWeekDay" ofType="Long">
<result column="cure_week_day"/>
</collection>
</resultMap>
"adviceNo": "2023040194",
"cureBeginTime": "10:00:00",
"cureEndTime": "10:20:00",
"cureWeekDay": [ 2, 4, 5]
文章描述了一个在使用MyBatis进行SQL查询并映射结果到Java对象时遇到的问题。查询涉及到`advice_no`,`cure_begin_time`,`cure_end_time`和`cure_week_day`字段,原始的`resultMap`配置导致了`cureWeekDay`被解析为Long类型的数组,但缺少`adviceNo`字段时引发空指针异常。通过修改`resultMap`,将`cure_week_day`配置为一个包含结果的集合,问题得到解决,现在`cureWeekDay`正确映射为[2,4,5]这样的数组。
2189

被折叠的 条评论
为什么被折叠?



