使用相同的存储库方法和Spring Boot存储库返回不同的Dto

时间:2020-04-30 15:10:08

标签: spring-boot jpa kotlin

我有两个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的详细信息创建另一个存储库?

0 个答案:

没有答案