JPA:將本機查詢結果轉換為POJO
在您的查詢中,您表達了需要將本機查詢的結果轉換為POJO
包含五個欄位的POJO 類別的集合。您思考 JPA 是否有直接方法將結果轉換為 POJO 物件清單。
使用反射自訂物件映射
引入 JPA 之前的一個可能的解決方案2.1 是使用反射手動映射結果。這涉及定義方法來建立與本機查詢結果具有相同數量和類型的欄位的 POJO 建構函數,並將查詢傳回的元組陣列對應到建構函數。
在 JPA 2.1 中使用 @SqlResultSetMapping
JPA 2.1 引入了 @SqlResultSetMapping 對於實體或 XML 檔案中的結果集。此映射定義了目標類別以及結果集中與其屬性相對應的列。透過使用此映射,您可以建立查詢物件並指定映射的名稱,以將結果直接轉換為 POJO 物件清單。
XML 映射
如果您希望將註解保留在實體類別之外,則可以在 META-INF/orm.xml 檔案中定義對應。這涉及建立具有 result-set-mapping 屬性的命名本機查詢元素,並使用指定目標類別和列名映射的建構函數結果定義 sql-result-set-mapping 元素。
映射實體 (JPA 2.0)
雖然 JPA 2.0 不允許將本機查詢對應到POJO類,但它確實支援對應到實體。這需要將 POJO 註釋為實體,並將其屬性對應到資料庫列。
結論
您選擇將本機查詢結果對應到的方法POJO 類別取決於您使用的 JPA 版本以及您對註解或 XML 配置的偏好。提供的選項提供了各種程度的靈活性和便利性,使您可以選擇最適合您的專案需求的選項。以上是如何將原生查詢結果轉換為JPA中的POJO?的詳細內容。更多資訊請關注PHP中文網其他相關文章!