在使用mybatis的一个无法查询的问题

一只孤独的汪汪 2018-03-20 11:10:55
环境:jdk1.8 数据库mysql
在使用mybatis 去重加分页的时候 出现了下列错误
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.UnsupportedOperationException: Cannot support subquery
### The error may exist in com/miya/marketing/dal/coupon/dao/CouponApplyMarketDAO.java (best guess)
### The error may involve com.miya.marketing.dal.coupon.dao.CouponApplyMarketDAO.getPubIdsByCityCode-Inline
### The error occurred while setting parameters
### SQL: SELECT count(0) FROM (SELECT DISTINCT pub_id FROM coupon_apply_market WHERE city_code = ? AND status = 1) table_count
### Cause: java.lang.UnsupportedOperationException: Cannot support subquery
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:79)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447)


出问题的sql在数据库中是可以执行的,把sql中的DISTINCT 去掉之后 可以正常运行

求解 完全不明白啊
...全文
644 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunyiban 2018-03-20
  • 打赏
  • 举报
回复
引用 3 楼 u011594442 的回复:
Cause: java.lang.UnsupportedOperationException: Cannot support subquery 不支持子查询,百度看看Mybatis子查询的写法吧
或者你可以这么写SQL; SELECT count(DISTINCT(pub_id )) FROM coupon_apply_market WHERE city_code = ? AND status = 1
Sunyiban 2018-03-20
  • 打赏
  • 举报
回复
Cause: java.lang.UnsupportedOperationException: Cannot support subquery 不支持子查询,百度看看Mybatis子查询的写法吧
  • 打赏
  • 举报
回复
引用 1 楼 mj280824108 的回复:
distinct 是作用于多列的 ,但是要看多列的组合有没有重复的,有的话就必须要过滤,否则就会出现这样的问题。 记得给分!!!
没有很明白你的意思 能再具体解释一下吗 我主要想问的 报错的sql在mysql直接执行是正确的 为什么在程序里运行的时候 会出现这样的问题
Enchanter, 2018-03-20
  • 打赏
  • 举报
回复
distinct 是作用于多列的 ,但是要看多列的组合有没有重复的,有的话就必须要过滤,否则就会出现这样的问题。 记得给分!!!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧