MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, não é possível definir links de propriedade porque nenhum setter, nenhum wither e não faz parte do construtor de persistência


Tem certeza de que deseja suas entidades/modelos; Customer e Order , para herdar de RepresentationModel classe que tem a propriedade private final List<Link> links; ?

Se você der uma olhada no definição de RepresentationModel.java diz claramente que é uma classe base para os DTOs coletarem links. , então IMHO eu acho que deveria ser usado para DTOs não para entidades .

Caso contrário, se você quiser mantê-lo como descrito, a única maneira que vejo para evitar o erro é ignorando os links campo seja persistido:
  1. Substituindo o getter de links
  2. Colocando @Transient no getter de links propriedade de RepresentationModel aula

Isso parecerá assim :
@Transient
@Override
public Links getLinks() {
    return super.getLinks();
}

Se essa abordagem não funcionar, tente criar DTOs dedicados para suas entidades, e cada um de seus DTOs herdará de RepresentationModel , desta forma você evitará a exceção barulhenta e manterá as coisas limpas!