sql >> Databasteknik >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, kan inte ställa in egenskapslänkar eftersom ingen setter, ingen vissnar och det inte är en del av persistenskonstruktorn

Är du säker på att du vill ha dina enheter/modeller; Customer och Order , för att ärva från RepresentationModel klass som har egenskapen private final List<Link> links; ?

Om du tittar på definition av RepresentationModel.java det står tydligt att det är en Basklass för DTO:er att samla länkar. , så IMHO jag tycker att det bör användas för DTO:er inte för enheter .

Annars, om du vill behålla det som du beskrev, är det enda sättet jag ser för att undvika felet genom att ignorera links fältet kvarstår :

  1. Åsidosätter getter för links
  2. Placera @Transient på getter av links egenskapen för RepresentationModel klass

Det kommer att se ut så här :

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

Om det här tillvägagångssättet inte fungerar, försök att skapa dedikerade DTO:er för dina enheter, och var och en av dina DTO:er kommer att ärva från RepresentationModel , på så sätt undviker du det bullriga undantaget och håller saker rena !



  1. MongoDB installerad via Homebrew fungerar inte

  2. Hämta fältvärde från array av underdokument

  3. Finns det ett likvärdigt verktyg som sql profiler för mongodb?

  4. Tillkännage ClusterControl 1.4.2 - DevOps Edition