0

我正在处理一个聚合查询,其中我们有两个名为 Task 和 Member 的表视图。

对于成员视图,我们可以有重复项。即:成员视图的id字段不是唯一的。

因此,当我们进行分组以在成员视图中查找任务名称和属性的组合时,它不会按预期工作。在这种情况下,我在 SQL 中制定了一个查询来删除下面添加的重复项。

SELECT t.task_name   AS task, 
       m.member_name AS memberName, 
       Count(*) 
FROM   task t 
       JOIN (SELECT DISTINCT id, 
                             member_name 
             FROM   member) m 
         ON t.member_id = m.id 
GROUP  BY task, 
          memberName

现在我想知道如何将上面使用的 JOIN 转换为 JPA 标准 API。

这个查询是否可以通过 JPA 标准来完成。

下面给出了相同的 JPA 实体。

任务实体:-

@Entity
@Table(name = "Task")
public class Task {
@Column(name="id")
private Integer id;
.....
@ManyToOne
@JoinColumn(name = "id")
private Member member;

......
}

会员实体:-

    @Entity
    @Table(name = "Member")
    public class Member {
    @Column(name="id")
    private Integer id;
    @Column(name="member_name")
    private String name;
    ......
    ......
    }

如果不是,我想知道一种替代方法,它可以在使用 GROUP BY 子句时忽略重复项,该子句也可以与 JPA 一起使用。

我真的很感激任何帮助。

4

0 回答 0