У меня есть два DTO: один для метода get типа "/ pessoas / {id}" и другой для "/ pessoas / {id} / detalhes", где я собираюсь увидеть больше атрибутов Pessoa.
Мои коды в Kotlin.
Мой простой DTO:
interface PessoaDTO {
val idInstitucional: UUID?
val nome: String?
}
data class PessoaDTOImpl(override val idInstitucional: UUID?, override val nome: String?): PessoaDTO
Мой DTO с подробной информацией:
interface PessoaDetalhesDTO {
val idInstitucional: UUID?
val nome: String?
val email: String?
val telefone: String?
val cpf: Long?
}
data class PessoaDetalhesDTOImpl(override val idInstitucional: UUID?, override val nome: String?, override val email: String?, override val telefone: String?, override val cpf: Long?): PessoaDetalhesDTO
У меня есть хранилище, которое будет доступ к моему PessoaController. Я думал о том, чтобы в моем репозитории было два метода, каждый для своего DTO.
Это мой репозиторий:
internal interface PessoaRepository : CrudRepository<Pessoa, Long>, JpaSpecificationExecutorWithProjection<Pessoa> {
fun findByIdInstitucional(idInstitucional: UUID): PessoaDTO?
fun findByIdInstitucional(idInstitucional: UUID): PessoaDetalhesDTO?
}
Однако у меня не может быть двух функций с одинаковым именем в репозитории для разных возвращаемых типов данных. Как с этим справиться, не создавая еще один репозиторий для подробной информации о Пессоа?