<select id="selectHotGoods" parameterType="java.lang.String" resultType="Goods">
select * from goods where state = 1
order by ${sort}
limit 4
</select>
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#,但是如果用$就会报There is no getter for property named 'XXX' in 'class java.lang.String' ,而改成#后,不会报错,参数能传进去,但是得到的结果order by 不起作用,就是没有按照我想要的类型排序。所以这里很纠结,求大神解答。
...全文
17114打赏收藏
mybatis order by后面参数是string类型的疑惑
select * from goods where state = 1 order by ${sort} limit 4 MyBatis排序时使用order by 动态参数时需要注意,用$而不是#,但是如果用$就会报There is no getter for property named 'XXX' in 'cla
难道是我说的不清楚吗?在补充一下:
使用 # 号是,不会出错,日志打出的sql语句如下,
DEBUG - ==> Preparing: select * from goods where state = 1 order by ? desc limit 4
DEBUG - ==> Parameters: salesVolume(String)
但是结果是order by没有起作用。
使用 $ ,就会有如下错误:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'sort' in 'class java.lang.String'。