使用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);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐