Gostaria de saber qual seria a melhor maneira de implementar uma classe Repository (JpaRepository) junto com uma classe DAO para consultas mais complexas e mais especificas com Criteria.
Gostaria de saber qual seria a melhor maneira de implementar uma classe Repository (JpaRepository) junto com uma classe DAO para consultas mais complexas e mais especificas com Criteria.
Bom, eu encontrei uma forma bastante interessante para se resolver esse problema, caso alguém não concorde, é só se manifestar para discutirmos. Vamos lá:
public interface TopicoRepositoryCustomer {
void executaBackup();
}
public class TopicoRepositoryCustomerImpl implements TopicoRepositoryCustomer {
@PersistenceContext
private EntityManager em;
@Override
public void executaBackup() {
//implementação com Criteria abstraido...
System.out.println("backup executado");
}
}
public interface TopicoRepository extends JpaRepository<Topico, Long>, TopicoRepositoryCustomer {
List<Topico> findByAutorEmail(String email);
}
OBS 1: As classes ''..Customers" e "...Impl", devem manter esse padrão de nomenclatura, caso contrário receberá um “No Property Found for Type” Exception.
OBS 2: Anote os serviços que utilizam RepositoryCustomer com @Transactional, para que o Spring gerencie abertura e fechamento do EntityManager.
Olá Augusto, tudo bem? Peço desculpas pela demora no retorno! Mas que solução interessante essa sua, muito bacana mesmo, assim vamos ter todos os recursos que precisamos, os recursos da JpaRepository que são excelentes e também recursos específicos e complexos que nos mesmos fazemos diretamente, muito legal mesmo! Continue assim e bons estudos!