jpa - 我该如何忽略: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);
}
解决方案
如果我的问题是正确的,那么您的问题在于以下两行:
Query query = entityManager.createNativeQuery(paginatedQuery, Material.class);
List<Material> materialList = query.getResultList();
您有多种选择来解决此问题:
提供完整的列列表,即在SQL语句中提供缺失的列,然后制作它们
NULL
;不要使用
Material
具有匹配属性的新类。
推荐阅读
- email - SQL Server 配置参数历史
- android - Android Room:添加和删除工作无限
- python - 有没有办法可以跳过python中文件路径的用户名
- php - QBXML 接收付款显示 Web 连接器中的解析错误 - php Devkit
- api - VsCode debbug Node Serverless - 断点被忽略,因为找不到生成的代码(源映射问题?)
- c# - Selenium SendKeys 并不总是在 Blazor 应用程序中工作
- node.js - react-native-webview 错误:方法没有覆盖或实现超类型的方法
- java - 仅当输入对象上的相应字段不为空时,如何在现有对象上设置字段
- python - 获取视频尺寸时出错
- python-3.x - 使用 __deepcopy__ 时的 __del__