簡體   English   中英

使用spring數據jpa執行具有多個參數的存儲過程,並將ResultSet映射到非實體類

[英]Execute stored procedures with multiple parameters and map ResultSet to non-entity class using spring data jpa

我們最近遷移到了Spring數據JPA(使用Spring-boot 2.1.5-RELEASE),並且需要執行具有多個輸入參數的存儲過程並映射到非實體POJO(我將在保存時將其設置為實體類的值)對象)。 誰能提供一個示例/說明如何實現? 我沒有太多的文檔資料,或者可能會想念我。

任何幫助,將不勝感激。

最直接,最簡單的解決方案是使用用戶SimpleJDBCCallSimpleJDBCCall為此數據資源使用JPA。 該文檔廣泛涵蓋了參數。

這樣的事情會起作用:

public class MyDao implements SomeDao {

    private JdbcTemplate jdbcTemplate;
    private SimpleJdbcCall procReadStuff;

    public void setDataSource(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
        this.procReadStuff = new SimpleJdbcCall(dataSource)
                .withProcedureName("my_procedure");
    }

    public void readStuff(Long id) {
        SqlParameterSource in = new MapSqlParameterSource()
                .addValue("in_id", id);
        Map out = procReadStuff.execute(in);
        Stuff stuff = new Stuff();
        stuff.setId(id);
        stuff.setSomeString((String) out.get("out_some_string"));

        // ...do something with Stuff POJO
    }

}

該示例是從docs中的示例中提取/修改的: 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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