3 回答

TA貢獻1856條經驗 獲得超17個贊
我認為您誤解了 a 的Service
真正含義。
AService
是處理業務邏輯的點。它的方法應該代表業務操作,而不僅僅是數據檢索/持久化的方法。
簡單地擁有所有JpaRepository
方法并委托給 aRepository
是大量代碼重復的秘訣,您應該避免這種情況。
Service
根據您的業務需求構建您的。
如果您覺得不需要 Service 中間件,可能是因為您只獲取/設置數據,只需Autowire
在.Repository
Controller
使用Repository
內部 aController
是錯誤的并不總是正確的。這取決于。

TA貢獻1827條經驗 獲得超8個贊
如果我正確理解了這個問題。首先將存儲庫創建為擴展 JpaRepository 或其他接口的接口,并且不要忘記使用@Repository 注釋您的接口。然后創建您的服務并將您的存儲庫注入它,這樣您就可以在服務中創建自己的方法(可以使用任何名稱)。然后您可以將服務注入您的控制器。該技術主要使用。

TA貢獻1906條經驗 獲得超10個贊
您不需要將方法復制Repository到任何服務。Spring Data JPA 提供了許多強大的功能來編寫自定義查詢。
假設您有UserRepository一個名為的域User并希望通過他/她的電子郵件地址找到用戶。findByEmail不要在擴展的單獨服務中創建方法,只需在接口UserRepository內聲明它:UserRepository
User findByEmail(String email);
然后,Spring Data JPA 將為您完成所有繁瑣的工作。UserRepository您可以通過在Controller(或其他類)中注入來調用此方法。
以上只是一個簡單的例子。您甚至可以聲明具有多個條件的查詢:
User findByEmailOrUsername(String email, String username);
User findByEmailAndActiveTrue(String email);
List<User> findTop10ByEmail();
我建議您探索 Spring Data JPA 的官方文檔。通過編寫幾行代碼,您可以做很多事情。
添加回答
舉報