我如何在mybatis中处理这个多参数问题

问题描述 投票:0回答:1

我试图使用mabatis的mapper编写一个查询但是到目前为止无法实现

这是我的代码

String SQL_SELECTPAGE = "select b.writer, b.title, b.topicdate, b.lecturekey, b.tcontent" +
        "from (select rownum rn, a.* from (select * from topics WHERE LECTUREKEY = #{lid}" +
        "order by topicdate desc) a) b" +
        "where rn between #{c.start} and #{c.end}";

@Select(SQL_SELECTPAGE)
List<Topics> selectPage(@Param("lid") String lid, @Param("c") PaginationCriteria c);

PaginationCriteria有开始和结束属性。

以下是HTTP状态500错误消息。我认为参数无法通过

...在哪里LECTUREKEY =?按主题日期命令desc)a)b between介于两者之间?和? > ###原因:java.sql.SQLSyntaxErrorException:ORA-00936:

如果有人可以帮助我,我会很高兴

谢谢

mybatis
1个回答
0
投票

您不能对行号子句使用JDBC绑定参数。在MyBatis中,使用#{...}指定的任何内容都是绑定参数。你指定为${...}的任何东西,基本上都是字符串替换,它应该在这里起作用。

所以重写你的where子句,就像这个where rn between ${c.start} and ${c.end}

© www.soinside.com 2019 - 2024. All rights reserved.