Я использую spring-data-jpa с hibernate и mysql.Исключение исключение «Нет запроса определено для этого имени» при использовании spring-data-jpa без «@Query»
У меня есть следующий Entity
package com.wayne.domain.player;
@Entity
@Table(name = "PLAYER")
@Getter
@Setter
@ToString
public class Player {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Long id;
@Column(name = "EMAIL")
private String email;
// ...
}
и хранилище:
@Repository
public interface PlayerRepository extends JpaRepository<Player, Long> {
List<Player> findByEmail(String email);
}
, когда я построить и запустить проект, я получаю следующее сообщение об ошибке:
java.lang.IllegalArgumentException: No query defined for that name [Player.findByEmail]
но Метод findByEmail работает нормально.
Если я изменить метод с «@Query» аннотацию, как это:
@Repository
public interface PlayerRepository extends JpaRepository<Player, Long> {
@Query("select p from Player p where p.email = ?1")
List<Player> findByEmail(String email);
}
не является исключением, и метод findByEmail работает отлично.
Я знаю, что spring-data-jpa автоматически создает запросы от имен методов. Но почему существует исключение без аннотации @Query?
Возможно, 'findByEMAIL'? – luk2302