取值时
#{param.msgStatus}
一直是false,java代码里面显示true。
sql
<select id="findPageOaReading" resultType="com.focusin.data.office.func.dto.ProcessMessageInfoDTO">
select i.*, t.template_name procdefName
from process_message_info i
inner join process_oa_template t on i.process_oa_template_id = t.id
where i.del_flag = 0 and i.status = 1
and i.receive_user = #{param.receiveUser}
and i.data_type in (1, 2, 3, 4)
and i.msg_status = #{param.msgStatus}
<if test="param.processTitle!=null and param.processTitle!=''">
and i.process_title like concat(#{param.processTitle}, '%')
</if>
<if test="param.tenant!=null and param.tenant!=''">
and i.tenant = #{param.tenant}
</if>
<if test="param.sendUser!=null and param.sendUser!=''">
and i.send_user = #{param.sendUser}
</if>
<if test="param.templateName!=null and param.templateName!=''">
and t.template_name like CONCAT(#{param.templateName},'%')
</if>
<if test="param.receiveBeginTime!=null and param.receiveEndTime!=null">
and i.create_time between #{param.receiveBeginTime} and #{param.receiveEndTime}
</if>
<if test="param.msgStatus == true and param.operateBeginTime!=null and param.operateEndTime!=null">
and i.update_time between #{param.operateBeginTime} and #{param.operateEndTime}
</if>
</select>
问题原因:判断boolean类型时不能用 param.msgStatus = 1
,不然会使得 #{param.msgStatus}
取值一直为false