
https://unsplash.com/photos/LmyPLbbUWhA
上一篇已經介紹過 MongoRepository 內建的查詢方法,也就是指定 id 欄位。但資料勢必有其他欄位,只查 id 肯定是不夠的。
本文會使用 Spring Data 框架的功能,示範如何在 repository 中設計自己的查詢條件,包含透過方法名稱及原生語法。接著說明如何進行排序與分頁。
最後簡介 MongoTemplate,藉由動態產生查詢條件,以因應多樣的需求。
本文已經搬家,歡迎到「【Spring Boot】第8.3課-在 MongoRepository 定義查詢條件與排序方式」繼續閱讀。
在後面課程使用MongoRepository時, getProducts時沒輸入priceTo的話會自動為0而不是null, 弄得沒法默認為Integer.MAX_VALUE, 該怎麼辦? 是ProductQueryParameter設默認值嗎...
回覆刪除嗨,請問是後面的哪個課程呢?我使用第23課的程式做測試後,沒有發現你說的問題。在範例程式中,ProductQueryParameter的priceTo的型態是大寫的「Integer」。所以沒有給值時會是null,不是0。
刪除哦哦, 謝謝提醒, 沒發現自己打了int
刪除當我Post http://localhost:8080/products的時候,Postman出現403.
回覆刪除後來上網找答案,發現要在class SecurityConfig 裡面,加上
.antMatchers(HttpMethod.POST, "/products").permitAll()
這一行,就不會出現403了.
這篇文章的完成後專案,沒有加入 Spring Security,照理來說不會有這個問題,反而是在第17課完成才會出現。
刪除屆時請參考第18課的文章,在 request header 攜帶 access token,就不會出現 403,也不必加上 permitAll 了~
作者已經移除這則留言。
回覆刪除您好 好像沒看到第八課的部分~
回覆刪除嗨嗨,原本第 7、8 課都是 MongoDB,但今年做了一些更新,整合成第 7.1 ~ 7.3 課系列。目前第 8 課是「空號」,正在寫 MySQL 的文章 :)
刪除了解~~ 您寫得很好 目前正在學習spring boot相關知識 若有問題再請教您 謝謝~
刪除