将hibernate boolean映射到smallint PostgreSql

时间:2017-07-27 02:47:10

标签: java postgresql hibernate

 @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

1 个答案:

答案 0 :(得分:0)

为什么不使用命名查询 从OperationUnit op中选择op,其中op.ouTypeId =:ouTypeId和op.isAvailable =:isAvailable

如果您想要使用本机查询,则应将参数isAvailible从布尔值转换为整数(可能在客户端将其发送到控制器之前) HTH