簡體   English   中英

Map 使用 spring 數據 sql 查詢 pojo 的結果 Z9CE3D1BD8890F16A0C4480935958C6Z08

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM