您遇到的问题:-
当我运行我的应用程序时,我收到了这个错误:
id column is not in resultset
原因:-
原因是您试图获取 [mensal, anual, porcentagem] 这三个字段并试图存储在一个错误的实体中。你可以试试下面的例子,
解决方案 A:
现在请考虑以下类作为您的实体:
ResultAdos.java
@Entity
class ResultAdos{
Integer empresaId;
String mensal;
String anual;
String porcentAgem;
String tipoTarifa;
//getter
//setter
}
ResultRepository.java
@Query(value="select * from resultados where id_empresa = :id_empresa and tipo_tarifa= :tipo_tarifa", nativeQuery=true)
List<Resultados> listarResultadosPorTarifa(@Param("id_empresa") Integer id_empresa, @Param("tipo_tarifa") String tipo_tarifa);
-
以上查询将完美运行
-
如果您不想更改查询,则可以使用以下示例,
解决方案 B:-
- 创建另一个具有合适名称 ResultDto 的普通类:
ResultDto.java
class ResultDto{
String mensal;
String anual;
String porcentAgem;
//getter
//setter
}
ResultRepository.java
@Query(value="select distinct mensal, anual, porcentagem from resultados where id_empresa = :id_empresa AND tipo_tarifa= :tipo_tarifa", nativeQuery=true)
List<ResultDto> listarResultadosPorTarifa(@Param("id_empresa") Integer id_empresa, @Param("tipo_tarifa") String tipo_tarifa);
-- 在 JPQL 中,fields/columnName 的名称应该来自您的实体,并且 table 的名称应该与 Entity 的名称相同,例如“ResultAdos”。