Как реализовать подзапрос в критериях JPA при объединении табличных представлений для удаления дубликатов - PullRequest
0 голосов
/ 03 апреля 2019

Я работал над запросом агрегации, где у нас есть два табличных представления с именами 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.

Буду очень признателен за любую помощь.

...