如何创建Spring Data JPA查询,该查询将返回与相同类型的对象列表中的3个参数匹配的对象

时间:2016-08-25 09:13:49

标签: java spring spring-data spring-data-jpa

我想创建一个根据方法名称创建的查询 - 例如:

List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
List<User> findByAgeIn(Collection<Age> ages)

基本上将两种方法结合起来。我有一个具有15个参数的实体,但这里只有3个相关,我们称之为x y z。我想创建一个基本上像

一样的查询
List<MyClass> FindByXAndYAndZIn(List<Myclass> list)

返回repo中与列表中任何元素具有相同x y z的所有对象

  1. 甚至可以仅使用从方法名称创建的查询
  2. 如果是,应该怎么做?
  3. !!编辑!!:刚认识到我写的帖子有误导性 - 我无法使用

    List<MyClass> FindByXAndYAndZIn(String X String Y String Z List<Myclass> list)
    

    因为X Y和Z的特定值在列表的元素中。我需要像

    这样的东西
    List<MyClass> FindByXAndYAndZIn(List<Myclass> list)
    

    这将得到列表的第一个元素的x y z,并从存储库中获取具有相同x y z的对象。然后为列表的下一个元素和下一个元素执行相同的操作并返回所有匹配的对象。

1 个答案:

答案 0 :(得分:0)

我的理解是你想要一个像 -

这样的查询
SELECT * FROM myclass_table WHERE X in (X, Y, Z);

这应该可以在spring data jpa中找到 -

List<MyClass> FindByXIn(List<String> X);

假设X是一个String,尽管可以为更复杂的JPA对象更改查询