簡體   English   中英

帶外鍵的Spring Data JPA @Query:參數不匹配

[英]Spring Data JPA @Query with foreign key: Parameter not matched

我有一個帶有id,volume和object_id列的表“Signal”。

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);

}

它不起作用。 如果我將"?1"更改為1則會獲得硬編碼值。 如果我嘗試查詢“音量”,它可以正常工作。

我收到此錯誤:

Blockquote嵌套異常是java.lang.IllegalArgumentException:參數值[1]與預期類型不匹配

我建議你省略查詢,讓spring數據為你生成一個。 所以你的情況可能會以某種方式表示(如果定義了正確的關系映射):

public interface SignalRepository extends JpaRepository<Signal, Integer> {
    Optional<Signal> findByObject(YourObjectType object);
}

如果您提供更多信息,例如您的實體 - 您可以獲得更多幫助。

您可以使用Spring數據生成基礎查詢,如下所示:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM