【发布时间】:2020-09-19 00:52:14
【问题描述】:
我有一个这样的@Entity:
import java.time.LocalDateTime;
import javax.persistence.Entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.jpa.domain.AbstractPersistable;
@Entity
@Data@NoArgsConstructor@AllArgsConstructor
public class Message extends AbstractPersistable<Long> {
private LocalDateTime messageDate = LocalDateTime.now();
private String message;
}
还有一个像这样的存储库:
import java.util.List;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
public interface MessageRepository extends JpaRepository<Message, Long> {
//List<Message> findAllByOrderByMessageDateAsc(Pageable pageable);
// With this I am trying to re-sort what I get
}
还有一个@Controller
@GetMapping("/messages")
public String list(Model model) {
Pageable limit = PageRequest.of(0, 5, Sort.by("messageDate").descending());
model.addAttribute("messages", messageRepository.findAll(limit));
//model.addAttribute("messages", messageRepository.findAllByOrderByMessageDateAsc(limit));
return "messages";
}
我收到了 5 条按降序排列的最新消息。但是如何让它们按升序排列?
【问题讨论】:
-
使用 Sort.by("messageDate").ascending()
-
如果我代替 PageRequest.of(0, 5, Sort.by("messageDate").descending()) 使用 PageRequest.of(0, 5, Sort.by("messageDate") .ascending()) 我收到最旧的五条消息。我想要最新的五个按升序排列。
-
您需要的是按按摩日期的最后 5 条消息。最简单的方法是进行计数查询然后再次请求,或者您必须在获取后手动排序
-
我试过 long count = messageRepository.count();可分页限制 = PageRequest.of((int)count/5, 5, Sort.by("messageDate").ascending());它不会一直给出五条记录。抓取后如何排序?
-
我添加了一个答案希望它可以帮助你。
标签: spring-boot jpa