当前使用版本(必须填写清楚,否则不予处理)
正在使用的版本:3.2.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
问题:查询或者更新时,Wrapper如何使用非实体字段,比如oracle数据库的rownum字段,想在查询的时候使用当做条件限制,rownum < 100.
重现步骤
select * from tableName where rownum < 100;
报错信息
Caused by: com.alibaba.druid.sql.parser.ParserException: ERRORpos 862, RPAREN rownum
Comment From: miemieYaho
自己研究
Comment From: llyboy
态度貌似很强硬啊,自己没发现这个框架哪里可以支持啊,所以才来提这个issue的,还望给予提示
Comment From: yuxiaobin
错误信息这么明显
Caused by: com.alibaba.druid.sql.parser.ParserException: ERRORpos 862, RPAREN rownum
显然是druid拦截器报错
另外送给伸手党:你要的rownum<100
QueryWrapper<User> ew = new QueryWrapper<>();
int count = mapper.selectCount(ew);
Assert.assertTrue(count != 0);
ew.lt("rownum", count);
Assert.assertEquals(mapper.selectList(ew).size(), count - 1);
Comment From: llyboy
应该是我没表达清楚哈,抱歉,QueryWrapper可以使用,想用LambdaQueryWrapper,可以避免手动写错字段名
Comment From: llyboy
另外你写的这种方式,太复杂了,有更简单的方式,只是想问问LambdaQueryWrapper如何实现,最后写(s) -> "rownum",会报不是以get,set,is开头的错误
Comment From: adu18531979826
老哥你解决这个问题了吗?