外部キーを持つ春データJPA @query:パラメータが一致していません

Thadeuアントニオ・フェレイラ・メロ:

私は、ID、ボリュームとのobject_id列を持つテーブル「信号」を持っています。

OBJECT_IDは外部キーです。私は、特定のobject_idを持つ各信号を取得する必要があります。

このクエリを使用しようとイム

public interface SignalRepository extends JpaRepository<Signal, Integer> {
    @Query("select s from Signal s where s.object = ?1")
    Optional<List<Signal>> findSignalByObjectId(Integer objectId);

}

それは仕事をdoens't。私が変更した場合"?1"1、それハードコードされた値を取得します。私は「ボリューム」を照会しようとすると、それが正常に動作します。

私はこのエラーを取得します:

BLOCKQUOTEネストされた例外は、java.lang.IllegalArgumentExceptionがあります。パラメータ値[1]は期待されるタイプと一致しませんでした

Gaurav Agarwalさん:

あなたは、このような基本的なクエリを生成するために、春のデータを使用することができます。

public interface SignalRepository extends JpaRepository<Signal, Integer> {
    List<Signal> findSignalByObjectId(Integer objectId);
}

または、あなたは、この戻り値の型とパラメータを使用してクエリを記述することができます。

public interface SignalRepository extends JpaRepository<Signal, Integer> {
    @Query("select s from Signal s where s.object = :id")
    List<Signal> findSignalByObjectId(@Param("id") Integer objectId);
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=208065&siteId=1