[英]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.