Consulta JPA de datos de primavera con propiedades de parámetros

¿Cuál es la forma más sencilla de declarar una consulta JPA de datos de Spring que usa propiedades de un parámetro de entrada como parámetros de consulta?

Por ejemplo, supongamos que tengo una clase de entidad:

public class Person {
    @Id
    private long id;

    @Column
    private String forename;

    @Column
    private String surname;
}

y otra clase:

public class Name {
    private String forename;
    private String surname;

    [constructor and getters]
}

... entonces me gustaría escribir un repositorio de datos Spring de la siguiente manera:

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);
}

... pero Spring data / JPA no me gusta que especifique nombres de propiedades en el?1 parámetro.

¿Cuál es la mejor alternativa? }

Respuestas a la pregunta(9)

Su respuesta a la pregunta