当前使用版本(必须填写清楚,否则不予处理)

正在使用的版本: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

老哥你解决这个问题了吗?