mybatis的@Select条件判断

使用mybatis的@Select注解的条件判断的时候遇到一个问题

刚开始的写法是

@Select("<script>" +
            " select id as id" +
            "  from `repayment_plan` " +
            "  where " +
            " state = 'OVERDUE' " +
            " <if test='collectionUserId != null and collectionUserId != '' ' >" +
            " and collection_user_id = #{collectionUserId}" +
            " </if>" +
            " </script>")
    List<CollectionSomePropertiesDTO> get1(@Param(value = "collectionUserId") Long collectionUserId, @Param(value = "isFirstLoad") Integer isFirstLoad);

启动项目报错
`Caused by: org.xml.sax.SAXParseException: 元素类型 “if” 必须后跟属性规范 “>” 或 “/>”。

修改后如下面代码:(改动内容是test后是转义符号 \")

@Select("<script>" +
            " select id as id" +
            " from `repayment_plan` " +
            "  where " +
            " state = 'OVERDUE' " +
            " <if test=\"collectionUserId != null and collectionUserId != '' \" >" +
            " and collection_user_id = #{collectionUserId}" +
            " </if>" +
            " </script>")
    List<CollectionSomePropertiesDTO> get1(@Param(value = "collectionUserId") Long collectionUserId, @Param(value = "isFirstLoad") Integer isFirstLoad);


版权声明:本文为xupengbo527原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。