Java @JoinTable的JPA查询
场景: 我有两个实体用户和程序Java @JoinTable的JPA查询,java,spring-boot,hibernate,jpa,jpql,Java,Spring Boot,Hibernate,Jpa,Jpql,场景: 我有两个实体用户和程序 @实体 @表(name=“user”) 公共类UserEntity实现可序列化{ @身份证 公共长id; 公共字符串名; 公共字符串电子邮件; @OneToOne(级联=级联类型.ALL) @可接合( name=“user\u程序”, joinColumns={ @JoinColumn(name=“user\u id”,referencedColumnName=“id”) }, 反向连接列={ @JoinColumn(name=“program\u id”,ref
@实体
@表(name=“user”)
公共类UserEntity实现可序列化{
@身份证
公共长id;
公共字符串名;
公共字符串电子邮件;
@OneToOne(级联=级联类型.ALL)
@可接合(
name=“user\u程序”,
joinColumns={
@JoinColumn(name=“user\u id”,referencedColumnName=“id”)
},
反向连接列={
@JoinColumn(name=“program\u id”,referencedColumnName=“id”)
}
)
公共项目实体项目;
}
JPQL:
SELECT
Program.name,
COUNT(user.id) AS user_count
FROM UserEntity AS user
INNER JOIN ProgramEntity AS program on ________ GROUP BY Program.name
我试图获取每个程序中的用户数,但由于
连接表
(中间表)不是实体,因此无法获取结果。有人可以建议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