我可以使用" IN"我的spring数据存储库中的关键字没有使用@Query?

时间:2017-11-24 18:14:32

标签: mysql spring spring-boot spring-data spring-data-jpa

我正在使用mySQL,并且我使用了弹簧数据。实体和存储库已配置并正常工作。我有一个名为" Matches"的足球比赛桌。并且每个匹配都有homeTeamawayTeam

我需要检索所有匹配的列表,其中" Team 1"和#34;第2队"已经玩过,所以我可以建立他们的#34;匹配历史"

这是我的存储库:

public interface MatchRepository extends JpaRepository<Match,Long> {

    List<Match> findByHomeTeamOrAwayTeam(
            @Param("homeTeam") Team homeTeam,
            @Param("awayTeam") Team awayTeam
    );
}

这样可以正常工作,它返回每个匹配的地方&#34; Team 1&#34;是家庭团队和&#34;团队2&#34;是客队。我也可以做findByHomeTeamAndAwayTeam,它返回相同的列表,但是按照它们所播放的匹配进行过滤。

现在我无法解决的问题是如何使用&#34; IN&#34;用于获取所有具有&#34; Team 1&#34;的匹配项的关键字和#34;第2队&#34;尽管有家或离家的情况。

现在,我正在对相同的端点进行2次调用,反转参数,但有没有办法表示以下内容???:

Select * from matches where homeTeam IN (1, 2) AND awayTeam IN (1, 2);

1 个答案:

答案 0 :(得分:1)

尝试使用In

import { URLSearchParams } from '@angular/http';

//...

let requestBody = new URLSearchParams();

for (let key in dataObject) {
  requestBody.set(key, dataObject[key]);
}

https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html