具有参数属性的 Spring 数据 JPA 查询

新手上路,请多包涵

声明使用输入参数的属性作为查询参数的 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 许可协议

阅读 590
2 个回答

定义带有签名的查询方法如下。

 @Query(select p from Person p where p.forename = :forename and p.surname = :surname)
User findByForenameAndSurname(@Param("surname") String lastname,
                             @Param("forename") String firstname);
}

有关详细信息,请查看 Spring Data JPA 参考

原文由 CuriosMind… 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题