微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JPA查询@JoinTable

如何解决JPA查询@JoinTable

场景: 我有两个实体User和Program

@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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。