Я работал над запросом агрегации, где у нас есть два табличных представления с именами 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, который мы использовали выше, в API критериев JPA.
Можно ли выполнить этот запрос по критериям 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.
Буду очень признателен за любую помощь.