提问人:zhili 提问时间:11/13/2023 最后编辑:zhili 更新时间:11/13/2023 访问量:38
mybatis 使用 include,param 解析失败
mybatis use include,param parse failed
问:
我正在使用 mybatis 3.5.6,我想使用 sql 来提取我的data_permission sql,像这样,
<select id="listByPermission" resultType="com.lvyou.micro.domain.entity.guide.GuideDO">
select guide.* from group_guide as guide
where guide.is_deleted = 0
<include refid="data_permission">
<property name="tableAlias" value="guide"/>
<property name="typeId" value="#{permission.typeId}"/>
</include>
</select>
<sql id="data_permission">
<choose>
<when test="${typeId} == 2">
<!-- some sql -->
...
</when>
<
<otherwise>
<!-- other sql -->
...
</otherwise>
</choose>
</sql>
参数权限为接口 defind,权限包含参数
List<GuideDO> listByPermission(@Param("guideNoList") List<String> guideNoList,@Param("permission") UserPermissionDTO permission);
in testcase:
UserPermissionDTO permissionDTO = new UserPermissionDTO();
permissionDTO.setTypeId(2);
guideMapper.listByPermission(CollUtil.toList("TCLY-DY-0004"), permissionDTO);
我想测试typeId是什么,然后联系不同的sql,但是当我运行我的测试用例时,然后抛出:
org.mybatis.spring.MyBatisSystemException:嵌套异常为 org.apache.ibatis.exceptions.PersistenceException: 查询数据库时出错。原因:java.lang.NumberFormatException:对于输入字符串:“{2=null}” 原因:java.lang.NumberFormatException:对于输入字符串:“{2=null}”
我怎样才能测试我的typeId?非常感谢你!
答: 暂无答案
评论
<include>
#{}
value="#{permission.typeId}"
value="permission.typeId"
{2=null}
typeId
...