![](/img/trans.png)
[英]How to catch the DAO Service Layer Exception cleanly in Spring Data JPA
[英]Returning data from spring DAO layer to spring Service layer
目前,我正在spring dao層方法內執行sql查詢,該方法向我返回java ResultSet對象。 我直接將此ResultSet對象返回到spring服務層。 想知道,這是返回完整ResultSet的好方法嗎? 如果不是,則以不同的形式返回結果集,如果我們獲得不同的名稱,則返回結果集。 查詢數據庫時,基於某些條件的ResultSet中的列數。
而不是返回ResultSet
,您應該考慮返回實體對象的Collection
( Set
, List
等)。 您的DAO通常會從ResultSet
讀取,從中ResultSet
實體對象的Collection
,然后將其返回到服務層。 您當前正在做的是將持久層的實現細節公開給服務層。 如果將持久性更改為(例如)休眠,則也需要更改服務層。
同樣,如果查詢從同一張表中提取不同數量的列,則可以從DAO返回不同類型的實體對象,例如BasicUserDetails
(僅包含基本屬性集)和UserDetails
(包含所有屬性)。 如果您希望持久層具有這種動態性,則需要確保服務層了解要返回的數據類型。
您的DAO必須返回對象的集合。 不返回ResultSet。 服務層是您執行業務邏輯的地方。 我們實際上正在做的是創建適配器接口來訪問業務對象。 因此,您的服務類除了業務邏輯外別無其他。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.