我正在处理一个聚合查询,其中我们有两个名为 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 一起使用。
我真的很感激任何帮助。