Если вы не хотите использовать Hibernate (или любой другой поставщик JPA), тогда вы должны реализовать своего собственного провайдера, предоставив реализацию интерфейса javax.persistence.spi.PersistenceProvider. Вопрос в том, зачем вам нужно изобретать колесо? Если вам не нравится Hibernate, вы можете использовать одно из многих других JPA-провайдеров, чтобы выбрать из
ID
в (SELECT DISTINCT ON (email, first_name, last_name) * from customer));
distinct on
возвращают только первую строку данных дублирования, которые непредсказуемы Полагаю, у вас есть поле id
.
delete from customer
where id not in (
select min(id)
from customer
group by email, first_name, last_name
)
Подзапрос находит идентификатор строк, которые вы хотите сохранить. Затем вы удаляете другие строки