我有两个DTO 一种获取方法,例如“ / pessoas / {id}” 还有一个用于“ / pessoas / {id} / detalhes”,在这里我将看到Pessoa的更多属性。
我的代码在科特林。
我简单的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?
}
但是,对于不同的返回数据类型,我在存储库中不能有两个具有相同名称的函数。 我该如何处理而不必为Pessoa的详细信息创建另一个存储库?