项目场景:
提示:这里简述项目相关背景:
前端传入的参数作为条件筛选时,其中is_send这个参数失效了,没有筛选正确状态的数据。
问题描述
提示:这里描述项目中遇到的问题:
例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据
APP 中接收数据代码:
"params": {
"startTime": "2024-06-10",
"endTime": "2024-06-20",
"isSend": 1
}
对应的mapper.xml的接口如下:
-- <select id="selectAll" resultType="com.im.system.domain.email.SendEmail">
SELECT
id,
send_time as sendTime,
update_time as updateTime,
is_send as isSend,
e_content as content
FROM SendEmail
<where>
<if test="param1 != null ">
AND send_time >= #{param1}
</if>
<if test="param2 != null">
<![CDATA[
and send_time <= #{param2}
]]>
</if>
<if test="param3 != null and param3 != ' ' ">
AND is_send = #{param3}
</if>
</where>
</select>-
# 原因分析以及解决方案:
> 主要是因为param3 != ' ',将这段代码去除,就可以张却筛选数据。以及对于LocalDateTime也是不可以直接与空字符去比较的
> 这样,不论是0(假定代表未发送)还是1(假定代表已发送),只要不是null,都会正确地参与到查询条件中去。如果问题依旧,深入调查上述提到的几个方面将是关键。
> 但是具体为什么不可以添加空字符判断没有找到原因????