0

我正在尝试通过 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"
  ],
4

1 回答 1

0

你必须告诉 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();
于 2021-11-13T09:58:55.693 回答