我有一个包含 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 nested exception is java.lang.IllegalArgumentException: Parameter value [1] did not match expected type
最佳答案
我建议您省略查询,让 spring data 为您生成一个。所以你的情况可能会以某种方式表示(如果定义了正确的关系映射):
public interface SignalRepository extends JpaRepository<Signal, Integer> {
Optional<Signal> findByObject(YourObjectType object);
}
如果您提供更多信息,例如您的实体 - 您可以获得更多帮助。
关于java - 带有外键 : Parameter not matched 的 Spring Data JPA @Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54014183/