@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 = boolean
答案 0 :(得分:0)
为什么不使用命名查询 从OperationUnit op中选择op,其中op.ouTypeId =:ouTypeId和op.isAvailable =:isAvailable
如果您想要使用本机查询,则应将参数isAvailible从布尔值转换为整数(可能在客户端将其发送到控制器之前) HTH