はじめに
EclipseからVScodeに変更して突如、
Springから怒られたので、備忘録として残します。
問題
起動すると以下のエラーが出力されました。
エラー
For queries with named parameters you need to provide names for method parameters;
Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters
DeepLで翻訳すると以下の通りです。
エラー
クエリーのメソッド・パラメーターには@Paramを使うか、
Java 8+の場合はjavacフラグ-parametersを使う。
解決方法
Repositoryの@Queryの引数に@Paramを使うと動きました。参考リンク
Repositoryを変更してみる
Repository.java(変更前)
public interface Repository extends CrudRepository<Users,Integer>{
//ユーザ登録
@Modifying
@Query("insert into users (name,password) values (:name,:password)")
void createUser(String name,String password);
Repository.java(変更後)
public interface Repository extends CrudRepository<Users,Integer>{
//ユーザ登録
@Modifying
@Query("insert into users (name,password) values (:name,:password)")
void createUser(@Param("name") String name,@Param("password") String password);
終わりに
初歩的なことですが、
エラー文で検索して日本語で解説されたページがなかったので残しておきます。
参考になれば幸いです。