MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, Eigenschaftsverknüpfungen können nicht gesetzt werden, da kein Setter, kein Wither und es nicht Teil des Persistenzkonstruktors ist

Sind Sie sicher, dass Sie Ihre Entitäten/Modelle wollen; Customer und Order , um von RepresentationModel zu erben Klasse, die die Eigenschaft private final List<Link> links; haben ?

Wenn Sie sich den Definition von RepresentationModel.java es sagt deutlich, dass es eine Basisklasse für DTOs ist, um Links zu sammeln. , so denke ich meiner Meinung nach, dass es für DTOs und nicht für Entitäten verwendet werden sollte .

Andernfalls, wenn Sie es so beibehalten möchten, wie Sie es beschrieben haben, sehe ich die einzige Möglichkeit, den Fehler zu vermeiden, darin, die links zu ignorieren Feld nicht beibehalten wird:

  1. Überschreiben des Getters von links
  2. Platzieren von @Transient auf dem Getter von links Eigenschaft von RepresentationModel Klasse

Es sieht so aus:

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

Wenn dieser Ansatz nicht funktioniert, versuchen Sie, dedizierte DTOs für Ihre Entitäten zu erstellen, und jedes Ihrer DTOs erbt von RepresentationModel , auf diese Weise vermeiden Sie die laute Ausnahme und halten die Dinge sauber !