【问题标题】:JPA Query for @JoinTable@JoinTable 的 JPA 查询
【发布时间】:2021-02-10 00:59:46
【问题描述】:

场景: 我有两个实体用户和程序

@Entity
@Table(name = "user")
public class UserEntity implements Serializable{

   @Id
   public Long id;

   public String firstName;

   public String email;

   @OneToOne(cascade = CascadeType.ALL)
   @JoinTable(
      name = "user_program",
      joinColumns = {
         @JoinColumn(name = "user_id", referencedColumnName = "id")  
      },
      inverseJoinColumns = {
         @JoinColumn(name = "program_id", referencedColumnName = "id")
      }
   )
   public ProgramEntity program;
}

JPQL:

SELECT
   Program.name,
   COUNT(user.id) AS user_count
FROM UserEntity AS user
INNER JOIN ProgramEntity AS program on ________ GROUP BY Program.name

我尝试获取每个程序中的用户数,但由于JoinTable(中间表)不是实体,我无法获得结果。谁能建议一个 JPQ 来连接连接表?

【问题讨论】:

    标签: java spring-boot hibernate jpa jpql


    【解决方案1】:

    您可以使用实体对象加入,“ON”不是必需的。以你为例,

    SELECT prg.name, COUNT(user.id) AS user_count FROM UserEntity AS user INNER JOIN user.program AS prg GROUP BY prg.name
    

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2013-10-23
      • 2013-01-31
      • 2012-01-24
      • 1970-01-01
      • 2013-02-19
      • 2019-12-07
      相关资源
      最近更新 更多