iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
自我挑戰組

跟 AI Agent 變成好朋友系列 第 19

【Day19】AI Agent 魔法詠唱 - 建立 Repository

  • 分享至 

  • xImage
  •  

上篇,我們提到每個 Entity 通常對應到一個資料表,而 Repository 在後端框架中即是資料存取層,負責與資料庫互動。以歷史推薦紀錄 RecommendationHistoryRepository 來看,Spring Data JPA 可自動產生 CRUD 操作,只需繼承 JpaRepository

public interface RecommendationHistoryRepository extends JpaRepository<RecommendationHistory, Long> {
    List<RecommendationHistory> findByUserOrderByCreatedAtDesc(User user);
}

Spring Data JPA是Spring框架家族中的一員,建立於Java Persistence API(JPA)的基礎上,使其能夠專注於簡化數據持久層的開發。

另外,Repository 可自訂查詢方法(例如 findByUserOrderByCreatedAtDesc),直接取得某用戶的歷史推薦紀錄,並依建立時間排序或分頁:

	  List<RecommendationHistory> findByUserOrderByCreatedAtDesc(User user);
	  List<RecommendationHistory> findByUserOrderByCreatedAtDesc(User user, Pageable pageable);
	  List<RecommendationHistory> findByUserAndCreatedAtAfterOrderByCreatedAtDesc(User user, LocalDateTime after);

能用 JPQL(如 @Query 標註)或原生 SQL 進行複雜查詢:

		@Query("SELECT COUNT(r) FROM RecommendationHistory r WHERE r.user = ?1")
    long countByUser(User user);
    
    @Query("SELECT AVG(r.userRating) FROM RecommendationHistory r WHERE r.user = ?1 AND r.userRating IS NOT NULL")
    Double getAverageRatingByUser(User user);

每個 Entity 通常對應一個 Repository,讓 Service 層能方便取得、儲存、更新、刪除資料,提升資料存取效率與維護性。

串接 AI Agent 時,Service 層可透過 Repository 取得過去的推薦紀錄、計算評分、分析使用者行為等,將資料提供給 AI 基礎模型做為決策或回饋的參考,並讓推薦結果夠容易保存、流通或優化。


參考資料:

  1. Albert Hg (19) 導入Spring-Data-JPA,將資料庫與物件進行綁定與 Sequence 的設定

上一篇
【Day18】AI Agent 魔法詠唱 - 建立 Entity
下一篇
【Day20】AI Agent 魔法詠唱 - 建立 DTO
系列文
跟 AI Agent 變成好朋友22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言