[英]Spring data JPA - Map object returned from native query to a POJO
[英]Map result of a sql query to pojo using spring Data JPA
我是一名學習Spring數據jpa的學生。 我正在嘗試解決一些練習編碼問題。 我有一個我找不到答案的問題。 我有一個名為 MYDB 的數據庫表,其中包含以下字段:
(id, firstname, lastname, rollno, major, country)
我有一個像這樣的 sql 查詢:
select Count(*) as counts, lastname as last_name, major as major_field from MYDB group by country
上面的查詢返回三個字段:counts(不是 db 列)、last_name 和 major_field。
我有一個這樣的 POJO:
public class MyPojo {
private int counts;
private String lastName;
private String majorField;
// Getters and Setters of all data members here
...................
}
我的問題是我如何 map 從 sql 查詢到我的 POJO 的結果? 我需要分配:
counts = counts(from sql query), lastName = last_name(from sql query), majorField = major_field(from sql query).
我被困在這一點上,不知道如何進一步實現對 POJO 的 sql 查詢的 map 結果:
public interface MyRepo extends JpaRepository<MyPojo, String> {
@Query(value=MY_SQL_QUERY, nativeQuery = true)
List<MyPojo> findAll();
}
最終我需要將 MyPojo 轉換為 Json object,但我知道該怎么做。 我只是不知道將 sql 查詢的結果分配給 pojo。
使用 javax.persistence @Column
注釋指定查詢中的哪些值用於填充 Java object 的字段:
public class MyPojo {
@Column(name = "counts")
private int counts;
@Column(name = "last_name")
private String lastName;
... and so on
}
這是一個關於注釋的很棒的教程:
您必須使用 TypedQuery 並提供 class 名稱,以便執行查詢結果並將其映射到 pojos
使用基於接口的投影解決的問題:
https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions#solution_interface_jpa
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.