JPA Query for @JoinTable



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

@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来连接联接表吗?

您可以使用实体对象加入,不需要'ON'。例如,

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

最新更新