MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, impossibile impostare i collegamenti alle proprietà perché nessun setter, nessun wither e non fa parte del costruttore di persistenza

Sei sicuro di volere le tue entità/modelli; Customer e Order , per ereditare da RepresentationModel classe che ha la proprietà private final List<Link> links; ?

Se dai un'occhiata a definizione di RepresentationModel.java dice chiaramente che è una classe base per i DTO per raccogliere link. , quindi IMHO penso che dovrebbe essere usato per DTO non per entità .

Altrimenti se vuoi mantenerlo come hai descritto, l'unico modo che vedo per evitare l'errore è ignorare i links campo dalla persistenza :

  1. Sostituzione del getter di links
  2. Posizionamento @Transient sul getter di links proprietà di RepresentationModel classe

Sarà simile a questo :

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

Se questo approccio non funziona, prova a creare DTO dedicati per le tue entità e ciascuno dei tuoi DTO erediterà da RepresentationModel , in questo modo eviterai l'eccezione rumorosa e manterrai le cose pulite!