Quelle est la manière la plus simple de déclarer une requête Spring data JPA qui utilise les propriétés d'un paramètre d'entrée comme paramètres de la requête ?
Par exemple, supposons que j'ai une classe d'entité :
public class Person {
@Id
private long id;
@Column
private String forename;
@Column
private String surname;
}
et une autre classe :
public class Name {
private String forename;
private String surname;
[constructor and getters]
}
... alors je voudrais écrire un référentiel de données Spring comme suit :
public interface PersonRepository extends CrudRepository<Person, Long> {
@Query("select p from Person p where p.forename = ?1.forename and p.surname = ?1.surname")
findByName(Name name);
}
... mais Spring data / JPA n'aime pas que je spécifie des noms de propriétés sur le fichier ?1
paramètre.
Quelle est la meilleure alternative ?