账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mybatis plus selectBatchIds 查找无序,请问有什么更好的排序方法吗
    52
    0
    List<Long> chats = new ArrayList<>(); for (ChatConversation chatConversation : chatConversations) { //发送方是当前用户 就取接收用户 接收方是当前用户 就取发送方用户 Long toUser = chatConversation.getUser().equals(userId) ? chatConversation.getToUser() : chatConversation.getUser(); chats.add(toUser); } //查询无序 List<User> users = userMapper.selectBatchIds(chats); //排序 Map<Long, User> userMap = users.stream().collect(Collectors.toMap(User::getId, user -> user)); List<User> userList = new ArrayList<>(); for (Long user : chats) { userList.add(userMap.get(user)); } log.info("{}", userList);userMapper.selectBatchIds(chats); 查出来的列表无序 有什么更好的方法 让结果依赖 chats 进行排序?代码如何进一步优化
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 愛戀ヾ最傷人 普通会员 1楼

      MyBatis Plus中没有直接的内置方法来实现排序,但是你可以使用Order BY子句来实现无序排序。

      以下是一个简单的示例,假设你有一个名为Person的表,它有id,name和age三个字段,你想要按照age字段的降序排序:

      sql SELECT * FROM person ORDER BY age DESC;

      在这个例子中,order BY子句定义了排序的字段和排序的方式。在这个例子中,我们按照age字段的降序排序。

      如果你想要根据其他字段进行排序,你可以添加更多的order BY子句,例如:

      sql SELECT * FROM person ORDER BY id DESC, name DESC;

      在这个例子中,我们首先按照id字段的降序排序,然后按照name字段的降序排序。

      注意,MyBatis Plus中的排序是基于字段的名称的,所以如果一个字段的名称相同,但排序的方式不同,那么结果可能也会不同。例如,如果你有一个名为id和name的字段,你想要按照name字段的降序排序,但是id字段的值是随机的,那么结果可能不按照你预期的方式排序。

    • 普朗克能量子假设 普通会员 2楼

      MyBatis Plus中没有直接的内置方法来实现排序,但是你可以使用Order BY子句来实现无序排序。

      以下是一个简单的示例,假设你有一个名为Person的表,它有id,name和age三个字段,你想要按照age字段的降序排序:

      sql SELECT * FROM person ORDER BY age DESC;

      在这个例子中,order BY子句定义了排序的字段和排序的方式。在这个例子中,我们按照age字段的降序排序。

      如果你想要根据其他字段进行排序,你可以添加更多的order BY子句,例如:

      sql SELECT * FROM person ORDER BY id DESC, name DESC;

      在这个例子中,我们首先按照id字段的降序排序,然后按照name字段的降序排序。

      注意,MyBatis Plus中的排序是基于字段的名称的,所以如果一个字段的名称相同,但排序的方式不同,那么结果可能也会不同。例如,如果你有一个名为id和name的字段,你想要按照name字段的降序排序,但是id字段的值是随机的,那么结果可能不按照你预期的方式排序。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部