使用MybatisPlus的分页,同时使用HAVING函数的坑

1.在使用mybatisPlus分页插件的同时,使用HAVING函数会出现假列找不到的问题,因为使用插件会自动查询总条数 select count(*) from xxx having x 在拼接HAVING的条件就会找不到那个列报错,所以要在sql外层包一层就可以解决报错问题

select * from (select xx from xxx)

示例:

user表

id        name
1小明
2小红
select 
    u.id,
    u.name,
    (select count(*) from user) as count
from user u 
having count>1 

此时,在使用mybatisPlus分页插件时,就会出现unknow count的报错。

select * from
(
select u.id,
       u.name,
       (select count(*) from user) as count 
from user u 
having count>1 
) a

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Oracle中使用MyBatis Plus进行分页,你需要在配置文件中使用`PaginationInnerInterceptor`分页插件。在开启MyBatis Plus分页功能之前,你需要先配置`PaginationInnerInterceptor`。在配置文件中,你需要添加以下配置: ```xml <configuration> <interceptors> <!-- 添加PaginationInnerInterceptor分页插件 --> <interceptor> <property name="rowBoundsWithCount" value="true" /> <property name="pageSizeZero" value="true" /> <property name="reasonable" value="true" /> <property name="dialect" value="oracle" /> </interceptor> </interceptors> </configuration> ``` 配置中的`dialect`属性需要设置为"oracle",以确保分页插件使用Oracle数据库的方言进行分页查询。配置完成后,你可以在代码中使用MyBatis Plus提供的分页方法进行查询,比如: ```java // 使用Page对象进行分页查询 Page<User> page = new Page<>(current, size); // current表示当前页码,size表示每页记录数 IPage<User> userPage = userMapper.selectPage(page, null); // 获取分页结果 List<User> userList = userPage.getRecords(); long total = userPage.getTotal(); ``` 这样就可以在Oracle中使用MyBatis Plus进行分页查询了。请注意,你需要在项目中引入MyBatis Plus和对应的Oracle数据库驱动依赖。 [2 [3123 #### 引用[.reference_title] - *1* *2* *3* [mybatis-plus 分页查询](https://blog.csdn.net/xiaojin21cen/article/details/126747224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值