kkks0001 2021-05-06 22:45 采纳率: 0%
浏览 331

jpa specification left join 导致数据重复

求助大佬

jpa中,需要分页,specification中需要自定义排序,所以使用了下面的代码,又需要验证其他表,所以使用了left join,导致查询出来的数据重复,使用distinct,但是报
"在查询列表中必须出现SELECT DISTINCT, ORDER BY表达式".查询很多资料后,可使用group by,虽然可以去重,但返回的分页数据中的totalElements与实际的totalElements不相等(是未group by后的长度),

求助求助呀

 

List<Order> orders = new ArrayList<>();
        orders.add(cb.asc(cb.selectCase().when(cb.equal(root.get("contractStatus").as(Byte.class), 2), 1)
            .when(cb.equal(root.get("contractStatus").as(Byte.class), 4), 2)
            .when(cb.equal(root.get("contractStatus").as(Byte.class), 1), 3)
            .when(cb.equal(root.get("contractStatus").as(Byte.class), 3), 4).otherwise(10)));
        orders.add(cb.desc(root.get("createDate")));
        query.orderBy(orders);

  • 写回答

4条回答 默认 最新

  • 关注

    要在SQL语句中加入distinct,类似这样的语句

    @Query("SELECT DISTINCT listing FROM SellerListing listing WHERE listing.id=:id")

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能