Page<DevInfo> page = DevInfo.dao.paginate(getParaToInt(0, 1), 20,
"SELECT d.*,u.acc_nbr PN",
"FROM D_DEVINFO d left join T_USER_INFO u on (d.imsi = u.imsi) ORDER BY d.DEVID DESC");
当有表关联的时候以上分页api会执行不成功。
debug源码拼出来的语句是这样的
select * from ( select row_.*, rownum rownum_ from ( SELECT d.*,u.acc_nbr PN FROM D_DEVINFO d left join T_USER_INFO u on (d.imsi = u.imsi) ORDER BY d.DEVID DESC ) row_ where rownum <= 20) table_alias where table_alias.rownum_ >= 1
row_.*这里报未明确列
只有在改成"SELECT d.a,d.b....,u.acc_nbr PN"
这样列出每一列才能支持分页。
Oracle 分页的 sql 本身已经嵌套了,所以出现以上面的问题,可能是因为查询的 sql 嵌套与原有的嵌套造成了干扰,或许是列重名了,重点检查一下你Sql中是否有select *造成重名的列。有时间我再看看这个问题,尽可能写出通用的分页 sql
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。