当前位置: 首页 > 知识库问答 >
问题:

按准则动态搜索

高墨一
2023-03-14

我将QueryDSLSpring Data JPA一起使用,并希望执行一些动态搜索。

 ________       ___________________       _______
| player |    | player_team         |    | team  |
|------  |    |----------------     |    |-------|
| id     |    | player_team_id (pk) |    | id    |
| name   |    | player_id (fk)      |    | name  |
  ------      | team_id (fk)        |     -------
                -----------      
@Entity
@Table(...)
public class Player implements java.io.Serializable {

    private Integer idPlayer ;
    private String namePlayer;
    private Set<PlayerTeam> player_teams = new HashSet<PlayerTeam>(0);  
    ...
}
@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> {

}

共有1个答案

贺轶
2023-03-14

如果不在PlayerTeam中添加额外的属性,就不应该将其建模为实体。关于它的条件

player.namePlayer.eq(...)

new JPASubQuery().from(playerTeam)
    .where(playerTeam.player.eq(player), palyerTeam.team.name.eq(...))
    .exists()
 类似资料:
  • 我需要创建一个“真正的”动态JPA。我得到一个语句。看起来像: 更新和解决方案得到了两个列表,第一个列表为和工作良好。第二个列表包含或语句,如exspected:

  • 我需要用一个动态搜索条件列表来排序一个动态对象列表。所以我有一个方法接受 } 它以一种方式排序。如果我在ASC中对一个字段进行排序,那么在DESC中对另一个字段进行排序,ASC排序将丢失。请帮忙。我刚到爪哇。

  • 规则 Sentinel 的理念是开发者只需要关注资源的定义,当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则: 通过 API 直接修改 (loadRules) 通过 DataSource 适配不同数据源修改 手动通过 API 修改比较直观,可以通过以下几个 API 修改不同的规则: FlowRuleManager.loadRules(List<FlowRule>

  • 我需要将此查询复制到JPA CriteriaBuilder代码中: 这是我的代码:

  • 有没有一种方法可以通过使用集合名称变量来概括它

  • 我们都知道,我们注册广播接收机有两种类型 动态注册 但我的疑问是什么时候我们需要使用,什么时候我们需要使用?