sql >> Databáze >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, nelze nastavit odkazy vlastností, protože žádný setter, žádný zánik a není součástí konstruktoru persistence

Jste si jisti, že chcete své entity/modely? Customer a Order , zdědit z RepresentationModel třídy, které mají vlastnost private final List<Link> links; ?

Pokud se podíváte na definice z RepresentationModel.java jasně říká, že je to Základní třída pro DTO ke shromažďování odkazů. , takže si IMHO myslím, že by se měl používat pro DTO ne pro entity .

Jinak, pokud to chcete zachovat tak, jak jste popsal, jediný způsob, jak se vyhnout chybě, je ignorovat links pole není trvalé :

  1. Přepsání getteru links
  2. Umístění @Transient na getteru links vlastnost RepresentationModel třída

Bude to vypadat takto :

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

Pokud tento přístup nefunguje, zkuste pro své entity vytvořit vyhrazené DTO a každý z vašich DTO zdědí z RepresentationModel , tímto způsobem se vyhnete hlučné výjimce a udržíte věci čisté!



  1. Pymongo vrací hodnoty pouze jako seznam

  2. MongoDB db.copyDatabase selže při neoprávněném

  3. Jak vrátit více hodnot pomocí Go Mongo Distinct

  4. Jak uložím soubor do MongoDB?