sql >> Base de Datos >  >> NoSQL >> MongoDB

Spring HATEOAS RepresentationModel, no se pueden establecer enlaces de propiedad porque no setter, no se marchita y no es parte del constructor de persistencia

¿Estás seguro de que quieres tus entidades/modelos? Customer y Order , para heredar de RepresentationModel class que tienen la propiedad private final List<Link> links; ?

Si echa un vistazo a definición de RepresentationModel.java dice claramente que es una clase base para que los DTO recopilen enlaces. , entonces, en mi humilde opinión, creo que debería usarse para DTO, no para entidades .

De lo contrario, si desea mantenerlo como lo describió, la única forma que veo de evitar el error es ignorar los links campo de ser persistente :

  1. Anulando el captador de links
  2. Colocar @Transient en el captador de links propiedad de RepresentationModel clase

Se verá así:

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

Si este enfoque no funciona, intente crear DTO dedicados para sus entidades, y cada uno de sus DTO heredará de RepresentationModel , ¡de esta manera evitará la excepción ruidosa y mantendrá las cosas limpias!