Nome do método da query de repository passando um valor padrão
2 respostasResolvido
spring-bootspringjava
T
Try
Caros, existe uma maneira mais facil de fazer isso?
List findClientsByIdAndIsDeletedAndProcessIdAndProfessionalActivityIsDeleted(Long clientId, String isDeletedClient, Long processId, String isDeletedProfessionalActivity);
List clien = clientRepository.findClientsByIdAndIsDeletedAndProcessIdAndProfessionalActivityIsDeleted(clientId, “F”, processId, “F”);
A questão é, todas as tabelas deste cruzamento de dados tem um coluna isDeleted . Existe alguma forma de eu fazer isso sem precisar repetir p "F’ nos parametes?
NO CASO DO EXEMPLO A CIMA EU COLOQUEI DOIS “F” …MAS EXISTEM MAIS 5 TABELAS … POR ISSO DA QUESTÃO.
eu fiz isso List client = clientRepository
.findClientByIdAndProcessIdAndIsDeletedAndProfessionalActivitiesIsDeletedAndFinancialDataIsDeletedAndPersonalDataIsDeletedAndContactsIsDeleted(
clientId, processId, “f”, “F”, “F”, “f”, “f”);
funciona… mas olha p tamanho do nome do método
W
Solucao aceita
wldomiciano
Tenho 2 sugestões:
Crie um método default no seu repository com um nome menor e mais adequado e nele vc chama esse método de nome gigante. Vale do Java 8 em diante.
Escreva sua query a mão mesmo.
interfaceClienteRepositoryextendsJpaRepository<Client,Long>{List<Client>findClientByIdAndProcessIdAndIsDeletedAndProfessionalActivitiesIsDeletedAndFinancialDataIsDeletedAndPersonalDataIsDeletedAndContactsIsDeleted(LongclientId,LongprocessId,StringclientIsDeleted,StringprofessionalActivityIsDeleted,StringfinancialDataIsDeleted,StringpersonalDataIsDeleted,StringcontactsIsDeleted);defaultList<Client>findByClientByIdAndProcessIdSugestao1(LongclientId,LongprocessId){returnfindClientByIdAndProcessIdAndIsDeletedAndProfessionalActivitiesIsDeletedAndFinancialDataIsDeletedAndPersonalDataIsDeletedAndContactsIsDeleted(clientId,processId,"F","F","F","F","F");}@Query(""" FROM Client c JOIN FETCH c.process a JOIN FETCH c.professionalActivity b JOIN FETCH c.financialData c JOIN FETCH c.personalData d JOIN FETCH c.contacts e WHERE c.isDeleted = 'F' AND a.isDeleted = 'F' AND b.isDeleted = 'F' AND c.isDeleted = 'F' AND d.isDeleted = 'F' AND e.isDeleted = 'F' """)List<Client>findByClientByIdAndProcessIdSugestao2(LongclientId,LongprocessId);}