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

3.4.3.3

该问题是如何引起的?(确定最新版也有问题再提!!!)

分页查询时,count查询优化报错

重现步骤(如果有就写完整)

分页查询时sql里面含有union,然后就会进行报错警告,主要不是sql 的错,而是类强制转换异常

报错信息

optimize this sql to a count sql has error, sql:"。。。。", exception: java.lang.ClassCastException: net.sf.jsqlparser.statement.select.SetOperationList incompatible with net.sf.jsqlparser.statement.select.PlainSelect

Comment From: miemieYaho

完整的错误信息或者原始sql你总要给一个吧

Comment From: TopSkyhua

完整sql和报错信息: optimize this sql to a count sql has error, sql:"(SELECT t.id, t.module_id, t.sort_value, t.title, t.is_top, t.brief_introduction, NULL videoFid, NULL videoDuration, t.cover_img, t.cover_label, t.author_id, t.author_name, t.publish_time, (SELECT count() FROM office_family_article_like_record WHERE article_id = t.id AND is_like = 1) AS likeCount, (SELECT count() FROM office_comment c WHERE c.source_id = t.id AND c.module = 0) AS commentCount, (SELECT count(DISTINCT create_user) FROM office_family_article_browse_record WHERE article_id = t.id) AS browseCount, (SELECT is_like FROM office_family_article_like_record WHERE article_id = t.id AND create_user = ?) AS isLike, (1) AS type FROM office_family_article t WHERE t.del_flag = 0 AND t.is_show = 1 AND t.publish_time < SYSDATE() AND t.xtenant = ? AND t.authorize = ?) UNION (SELECT v.id, v.module_id, v.sort_value, v.title, v.is_top, v.brief_introduction, v.video_fid, v.video_duration, v.cover_img, NULL cover_label, v.author_id, v.author_name, v.publish_time, NULL likeCount, (SELECT count(1) FROM office_comment c WHERE c.source_id = v.id AND c.module = 1) AS commentCount, (SELECT count(DISTINCT create_user) FROM office_family_video_browse_record WHERE video_id = v.id) AS browseCount, NULL isLike, (2) AS type FROM office_family_video v WHERE v.del_flag = 0 AND v.is_show = 1 AND v.publish_time < SYSDATE() AND v.xtenant = ? AND v.authorize = ? AND 1 = 2) ORDER BY is_top DESC, publish_time DESC", exception: java.lang.ClassCastException: net.sf.jsqlparser.statement.select.SetOperationList incompatible with net.sf.jsqlparser.statement.select.PlainSelect