亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Spring Boot 中使用 ORDER BY?

如何在 Spring Boot 中使用 ORDER BY?

HUH函數 2022-07-20 10:53:34
基本上我正在為學校構建一個 Web 應用程序,它使用 Telegram Bot API 向我的聯系人發送消息。在我的網頁的左側,我有聯系人 div,并且有來自 MySQL 表中的所有聯系人的列表。一切都很完美,只是它們沒有按名稱順序排列??刂破鰼Controllerpublic class MainController {@Autowiredprivate ContactsService contactsService;@GetMapping("/")public String allContacts(HttpServletRequest request) {    request.setAttribute("contacts", contactsService.findAll());    request.setAttribute("mode", "MODE_CONTACTS");    return "index";}@RequestMapping("/input")public String input() {    return("input");}}存儲庫import org.springframework.data.repository.CrudRepository;import totelegram.model.Contacts;public interface ContactsRepository extends CrudRepository<Contacts, Integer>{}服務@Service@Transactionalpublic class ContactsService {private final ContactsRepository contactsRepository;public ContactsService(ContactsRepository contactsRepository) {    super();    this.contactsRepository = contactsRepository;}//@Query("select * from contacts order by name asc")public List<Contacts> findAll(){    List<Contacts> contacts = new ArrayList<>();    for(Contacts contact : contactsRepository.findAll()) {        contacts.add(contact);    }    return contacts;}}模型@Entity(name = "contacts")public class Contacts implements Serializable{基本上它只有 id、name、phone_number、getter/setter、toString。您可以在服務中看到一條評論,這正是我無法弄清楚的。當您在網站上顯示表格時,@Query 需要在哪里進行訂購。Abinash Ghosh 的回答解決了一個問題。但其他人也很有幫助。謝謝大家的幫助。
查看完整描述

3 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

嘗試使用以下代碼進行 desc order 。您可以通過Sort.Direction.ASC為 asc 執行操作,還可以根據需要更改字段名稱。我在這里使用了“id”。它應該可以正常工作。


public List<Contacts> findAll(){

    List<Contacts> contacts = new ArrayList<>();

    for(Contacts contact : contactsRepository.findAll(sortByIdDesc())) {

        contacts.add(contact);

    }

    return contacts;

}


 private Sort sortByIdDesc() {

        return new Sort(Sort.Direction.DESC, "id");

 }

對于您的問題,解決方案是:


public List<Contacts> findAll(){

    List<Contacts> contacts = new ArrayList<>();

    for(Contacts contact : contactsRepository.findAll(sortByNameAsc())) {

        contacts.add(contact);

    }

    return contacts;

}


 private Sort sortByNameAsc() {

        return new Sort(Sort.Direction.ASC, "name");

 }


查看完整回答
反對 回復 2022-07-20
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

除了 Md Shifatul Isalm 的回答之外,您還可以創建一個存儲庫方法,例如:

List<Contacts> findAllOrderByNameAsc();

順便說一句,您不需要額外的 ArrayList。只需從存儲庫返回值:

return contactsRepository.findAllOrderByNameAsc();


查看完整回答
反對 回復 2022-07-20
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

您可以使用JpaRepositoryJPA 方法命名功能Order by


存儲庫


public interface ContactsRepository extends JpaRepository<Contacts, Integer> {

    public List<Contacts> findAllByOrderByNameAsc();

}

服務


public List<Contacts> findAll(){

    List<Contacts> contacts = contactsRepository.findAllByOrderByNameAsc();

    return contacts;

}


查看完整回答
反對 回復 2022-07-20
  • 3 回答
  • 0 關注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號