2017-07-27 5 views
0
@NativeQuery 
    List<OperationUnit> findOperationUnitByOuTypeIDSql(@QueryParam("ouTypeId") Long ouTypeId, @QueryParam("isAvailable") Boolean isAvailable, RowMapper<OperationUnit> rowMapper); 

私のクエリをsmallintにブール値を休止状態:マッピングは、PostgreSQL

select * from t_au_operation_unit where OU_TYPE_ID = :ouTypeId and is_available = :isAvailable order by name asc; 

私はisAvailableがブール型であり、あなたが見ることができるのJavaの.asでこの機能を持っています。しかし、Postgres dbの関連する列はsmallintです。あなたがするinsits場合isAvailable

:ouTypeIdとop.isAvailable =:したがって、私はこの種のエラーはなぜop.ouTypeId = OperationUnit OPから名前付きクエリ 選択オペアンプを使用していない

ERROR: operator does not exist: smallint = boolean

+0

なぜブール値ではなく、 '? –

+0

私は、oracleからpgsqlへのdb変換を行いました。 oracleでは、カラムis_avaiableはNUMBER(1)で、Pgsqlの関連タイプはsmallint –

答えて

0

を持っていますネイティブクエリを使用する場合は、パラメータisAvailibleをブール値から整数に変換する必要があります(クライアント側でコントローラに送信する前に)。 HTH

+0

です。ブーリアンからis_availableのパラメータをクライアント側の整数に変換する方法は? –

+0

AJAXリクエストを送信している場合、Springモデルを使用している場合、int値が計算されるようにモデルを変更すると、URL = URL + isAvailible =?1:0になります。int getOtherAvilible(){return isAvilible? 1:0}に設定し、このパラメータを使用します –