声明使用输入参数的属性作为查询参数的Spring数据JPA查询的最简单方法是什么?
例如,假设我有一个实体类:
public class Person { @Id private long id; @Column private String forename; @Column private String surname; }
和另一类:
public class Name { private String forename; private String surname; [constructor and getters] }
…那么我想编写一个Spring数据存储库,如下所示:
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); }
…但是Spring数据/ JPA不喜欢我在?1参数上指定属性名称。
?1
什么是最巧妙的选择?
该链接将为你提供帮助:支持SpEL表达式的Spring Data JPA M1。类似的例子是:
@Query("select u from User u where u.firstname = :#{#customer.firstname}") List<User> findUsersByCustomersFirstname(@Param("customer") Customer customer);