首页 > 解决方案 > 我该如何忽略:PSQLException:在此 ResultSet 中找不到列名 ClothStyle

问题描述

我创建了一个查询,只从不包括列布样式的表中的一行中获取 4 个项目,所以我理解为什么我会收到错误,但我怎么能告诉 Spring Jpa 或 JPA 这是故意的。我只想要 id、name 和 color 表?

这是我的代码:

@RequestMapping(value = "/query/material",method = RequestMethod.GET)

public String QueryMaterialTable(HttpServletRequest request){

    DataTableRequest<Material> dataTableInRQ = new DataTableRequest<Material>(request);
    PaginationCriteria pagination = dataTableInRQ.getPaginationRequest();

    String baseQuery = "SELECT id as id, time as time, name as name, color as color, price as price, (SELECT COUNT(1) FROM MATERIAL) AS totalrecords  FROM MATERIAL";
    String paginatedQuery = AppUtil.buildPaginatedQuery(baseQuery, pagination);

    System.out.println(paginatedQuery);

    Query query = entityManager.createNativeQuery(paginatedQuery, Material.class);

    @SuppressWarnings("unchecked")
    List<Material> materialList = query.getResultList();

    DataTableResults<Material> dataTableResult = new DataTableResults<Material>();
    dataTableResult.setDraw(dataTableInRQ.getDraw());
    dataTableResult.setListOfDataObjects(materialList);
    if (!AppUtil.isObjectEmpty(materialList)) {
        dataTableResult.setRecordsTotal(String.valueOf(materialList.size())
        );
        if (dataTableInRQ.getPaginationRequest().isFilterByEmpty()) {
            dataTableResult.setRecordsFiltered(String.valueOf(materialList.size()));
        } else {
            dataTableResult.setRecordsFiltered(String.valueOf(materialList.size()));
        }
    }
    return new Gson().toJson(dataTableResult);
}

标签: jpaspring-data-jpa

解决方案


如果我的问题是正确的,那么您的问题在于以下两行:

Query query = entityManager.createNativeQuery(paginatedQuery, Material.class);
List<Material> materialList = query.getResultList();

您有多种选择来解决此问题:


推荐阅读