我想创建一个根据方法名称创建的查询 - 示例:
List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
List<User> findByAgeIn(Collection<Age> ages)
这基本上结合了上述两种方法。我有一个大约有 15 个参数的实体,但这里只有 3 个相关,我们称它们为 x y z。我想创建一个基本上像这样工作的查询
List<MyClass> FindByXAndYAndZIn(List<Myclass> list)
并从存储库返回与列表中任何元素具有相同 x y z 的所有对象
- 是否可以仅使用通过方法名称创建的查询
- 如果是,应该怎么做?
!!编辑!!:刚刚意识到我写的帖子具有误导性 - 我无法使用
List<MyClass> FindByXAndYAndZIn(String X String Y String Z List<Myclass> list)
因为XY和Z的具体值在列表的元素中。我需要类似的东西
List<MyClass> FindByXAndYAndZIn(List<Myclass> list)
这将获取列表第一个元素的 x y z 并从存储库中获取具有相同 x y z 的对象。然后对列表的下一个元素和下一个等执行相同的操作,并返回所有匹配的对象。
最佳答案
我的理解是你想要一个像 -
SELECT * FROM myclass_table WHERE X in (X, Y, Z);
这在 spring data jpa 中应该是可能的 -
List<MyClass> FindByXIn(List<String> X);
假设 X 是一个字符串,尽管查询可以更改为更复杂的 JPA 对象
关于java - 如何创建一个 Spring Data JPA 查询,该查询将从相同类型的对象列表中返回与 3 个参数匹配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39141185/