[Error] Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.

2488 ワード

その後、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

さっそく!!!問題と同じ間違いまず、Repositoryを表示できます.
public interface OperationRepository extends JpaRepository<Operation, Long> {

    @Query("SELECT o FROM Operation o WHERE o.link=:link")
    public Optional<Operation> findByLink(String link);

    @Query("SELECT o FROM Operation o WHERE o.id=:id AND o.link=:link")
    public Optional<Operation> findByIdAAndLink(Long id,String link);
}
前述したように、インタフェースパラメータにはパラメータが付加されていません.
これがエラーの原因です.@Paramの説明書が貼られていないからです.
最初はエラーは発生しませんでしたが、その後突然エラーが発生し、gradleファイルに設定された可能性があります.その後、-parametersオプションが含まれている部分を修正して紛失しました.
public interface OperationRepository extends JpaRepository<Operation, Long> {

    @Query("SELECT o FROM Operation o WHERE o.link=:link")
    public Optional<Operation> findByLink(@Param("link") String link);

    @Query("SELECT o FROM Operation o WHERE o.id=:id AND o.link=:link")
    public Optional<Operation> findByIdAAndLink(@Param("id") Long id,@Param("link") String link);
}
Java 8以降でも、@Query構文を使用してクエリー文を記述する場合は、@Param構文を使用してパラメータバインド!!!
詳細については、https://www.inflearn.com/questions/367372を参照してください.