声明使用输入参数的属性作为查询参数的 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
参数上指定属性名称。
什么是最好的选择?
原文由 Kkkev 发布,翻译遵循 CC BY-SA 4.0 许可协议
此链接将为您提供帮助:支持 SpEL 表达式的 Spring Data JPA M1。类似的例子是:
https://spring.io/blog/2014/07/15/spel-support-in-spring-data-jpa-query-definitions