@NativeQuery
List<OperationUnit> findOperationUnitByOuTypeIDSql(@QueryParam("ouTypeId") Long ouTypeId, @QueryParam("isAvailable") Boolean isAvailable, RowMapper<OperationUnit> rowMapper);
我的查询:
select * from t_au_operation_unit where OU_TYPE_ID = :ouTypeId and is_available = :isAvailable order by name asc;
我在 Java 中有这个功能。如您所见,isAvailable
是布尔类型。但是,Postgres db 中的相关列是smallint
类型。因此,我有这种错误
错误:运算符不存在:smallint = 布尔值
为什么不使用命名查询 从 OperationUnit op 中选择 op,其中 op.ouTypeId = :ouTypeId 和 op.isAvailable = :isAvailable
如果您坚持使用本机查询,则应将参数isAhaveible从布尔值转换为整数(可能在客户端将其发送到控制器之前( 呵呵