MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, impossible de définir des liens de propriété car aucun setter, aucun flétrissement et cela ne fait pas partie du constructeur de persistance

Êtes-vous sûr de vouloir vos entités/modèles ? Customer et Order , pour hériter de RepresentationModel class qui ont la propriété private final List<Link> links; ?

Si vous jetez un œil au définition de RepresentationModel.java il est clairement indiqué qu'il s'agit d'une classe de base permettant aux DTO de collecter des liens. , donc à mon humble avis, je pense qu'il devrait être utilisé pour les DTO et non pour les entités .

Sinon, si vous voulez le conserver comme vous l'avez décrit, le seul moyen que je vois pour éviter l'erreur est d'ignorer les links champ d'être persistant :

  1. Remplacer le getter des links
  2. Placer @Transient sur le getter des links propriété de RepresentationModel classe

Cela ressemblera à ceci :

@Transient
@Override
public Links getLinks() {
    return super.getLinks();
}

Si cette approche ne fonctionne pas, essayez de créer des DTO dédiés pour vos entités, et chacun de vos DTO héritera de RepresentationModel , de cette façon vous éviterez l'exception bruyante et garderez les choses propres !