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

标签 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)

并从存储库返回与列表中任何元素具有相同 x y z 的所有对象

  1. 是否可以仅使用通过方法名称创建的查询
  2. 如果是,应该怎么做?

!!编辑!!:刚刚意识到我写的帖子具有误导性 - 我无法使用

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/

相关文章:

Java -> Kotlin。数据类转换模式

java - 为什么在 Spring 中,对于内容类型为 json-patch 的请求,日期转换不起作用?

java - 为什么这个 AngularJS 调用会导致 400 错误请求错误(Spring 后端)

java - Spring Data JDBC 是否有 Criteria API?

java - 如何使用 ModelAndView 进行标题重定向

java - FusionAuth授权

java - Spring Boot JPA不会使用save方法更新记录

java - 在 jscience 中使用惯性矩

java - 如何在 GET 方法中为 spring boot Controller 类传递多个路径变量?

java - JDK 更新后 Netbeans JDBC 错误 "Unable to find suitable driver"