我正在处理一个聚合查询,在该查询中我们有两个名称分别为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一起使用。
我将非常感谢您的帮助。