簡體   English   中英

如何使用原生 SQL 生成元數據 // 如何在沒有列名的情況下檢索生成的數據?

[英]How to generate metadata with native SQL // how to retrieve the generated data without column names?

我正在嘗試通過 Reactjs 檢索生成的數據。 但是,在spring boot中使用原生SQL查詢生成的數據在JSON文件中沒有元數據/列名; 我不能使用 JPA,因為我的 SQL 查詢是使用 OUTER APPLY。 有人可以向我展示一個使用列名生成數據或使用 Reactjs 從沒有列名的 JSON 文件中檢索數據的解決方案嗎?

下面是我的本機 SQL 查詢及其結果:

    @GetMapping
public List<Client> getClients()
{
    List<Client> results = entityManager.createNativeQuery("SELECT top 17 c.CustomerNumber, c.Name, c.Surname, c.Area, c.City, c.Address, c.Enabled, c.CustomerTypeID, c.DateCreated, p.Debit, p.Credit\n" +
                    "FROM tblCustomer c OUTER APPLY\n" +
                    "     (SELECT TOP (1) p.*\n" +
                    "      FROM tblPayments p\n" +
                    "      WHERE c.CustomerNumber = p.CustomerNumber\n" +
                    "      ORDER BY p.id DESC\n" +
                    "     ) p;")
            .getResultList();
    return results;
}`

這樣做的結果是:

// http://localhost:8080/api/v1/client

[
  [
    "000001",
    "Pajazit",
    "Neziri",
    "1",
    "Çegran",
    "Bake",
    "T",
    2,
    "2016-10-25T00:49:31.000+00:00"
  ],

你必須告訴 Hibernate 結果應該是什么:

List<Client> results = entityManager.createNativeQuery("SELECT top 17 c.CustomerNumber, c.Name, c.Surname, c.Area, c.City, c.Address, c.Enabled, c.CustomerTypeID, c.DateCreated, p.Debit, p.Credit\n" +
                    "FROM tblCustomer c OUTER APPLY\n" +
                    "     (SELECT TOP (1) p.*\n" +
                    "      FROM tblPayments p\n" +
                    "      WHERE c.CustomerNumber = p.CustomerNumber\n" +
                    "      ORDER BY p.id DESC\n" +
                    "     ) p;", 
                    Client.class) // THIS WAS MISSING
            .getResultList();

暫無
暫無

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

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