Я использую QueryDSL
с Spring Data Jpa
и хочу выполнить динамический поиск.
Я следую этому ответу, и с BooleanBuilder
все в порядке, но в моем случае мне нужно объединяться.
Итак, как я могу это сделать, если у меня есть 3 соединения на player
, player_team
, team
и у меня есть необязательные параметры для имени игрока и названия его команды?
________ ___________________ _______
| player | | player_team | | team |
|------ | |---------------- | |-------|
| id | | player_team_id (pk) | | id |
| name | | player_id (fk) | | name |
------ | team_id (fk) | -------
-----------
player.java
@Entity
@Table(...)
public class Player implements java.io.Serializable {
private Integer idPlayer ;
private String namePlayer;
private Set<PlayerTeam> player_teams = new HashSet<PlayerTeam>(0);
...
}
команда.java
@Entity
@Table(...)
public class Team implements java.io.Serializable {
private Integer idTeam ;
private String nameTeam;
private Set<PlayerTeam> player_teams = new HashSet<PlayerTeam>(0);
...
}
player_team.java
@Entity
@Table(...)
public class PlayerTeam implements java.io.Serializable {
private Integer idPlayerTeam ;
private Team team;
private Player paleyr;
...
}
и для каждого домена у меня есть такой репозиторий:
public interface PlayerRespository extends JpaRepository<Player, Integer>, QueryDslPredicateExecutor<Player> {
}