La forma correcta de solucionar el problema con POST es agregar una anotacion al user de la clase Post, quedando:
@ManyToOne
@JsonBackReference
private User user;
Introducción a Spring Boot
¿Qué es Spring Boot?
Características principales de Spring Boot
Instalación de entorno de desarrollo: Windows
Instalación de entorno de desarrollo: macOS
Instalación de entorno de desarrollo: Ubuntu
Dependencias en Spring Boot
¿Qué es una dependencia?
Inversión de control y el patrón de inyección de dependencias
Autoconfiguration y runtime
Anotaciones para indicar dependencias en Spring Boot
Creación de proyecto bajo arquitectura de dependencias
Inyección de dependencia "Component"
Ejemplo de creación de dependencia propia
Configuración general de Spring Boot
Cambio de puerto y path
Uso de properties y valores
Uso de properties con ejemplo de generación de POJO
Qué son los logs y cómo usarlos
JPA con Spring y Spring Data
Modelado de entidades con JPA
Configuración de datasource con properties y classes
Registro en base de datos con JpaRepository
Uso de JPQL en anotación query
Uso de anotación value para apuntar a properties
Obtención de información usando Query methods
Uso de Query methods con Or, and, OrderBy, Between, Sort
Uso de JPQL con named parameters
Uso de anotación transactional
Rollback con la anotación transactional
REST con Spring Boot
CRUD bajo arquitectura REST
Métodos CREATE, UPDATE y DELETE
Probando la API REST
Pagination con Spring Boot
Conclusiones
Sigue aprendiendo Spring Boot
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Michael García Abelló
Aportes 8
Preguntas 4
La forma correcta de solucionar el problema con POST es agregar una anotacion al user de la clase Post, quedando:
@ManyToOne
@JsonBackReference
private User user;
Para los que tengan el error “Unsupported Media Type”
eliminen @JsonManagedReference en la Entidad User
y agreguen @JsonIgnore
Al usar el método POST en POSTMAN me salía un error de “Unsupported Media Type Application/Json”. Busqué en stackoverflow y recomiendan eliminar el @JsonManagedReference en la clase User. Lo intenté y si funciona pero no se que implicaciones pueda tener.
En mi caso yo he estado usando VSCode para el desarrollo con Spring Boot:
https://code.visualstudio.com/docs/java/java-spring-boot
Si usan VSCode les puedo recomendar esta extensión de VSCode para testear sus API. Es similar a Postman y con ella no tienen que salir del editor, se hace más cómodo.
https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client
Probablemente a algunos les salio un error del estilo:
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported...
La solucion es que en su clase de la entidad “Posts” agreguen esta anotacion a la propiedad User, quedaria asi:
@ManyToOne
@JsonBackReference
private User user;
Con esto arreglan el problema que tiene la aplicacion al devolverles la respuesta en formato JSON.
Gracias a Hipólito Morales que fue quien respondio anteriormente esto, yo solo lo “re postee” especificando que error soluciono en mi caso.
En este post está bien explicado la parte de @JsonManagedReference y @JsonBackReference
https://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion
Me aparecía el siguiente error al intentar de escribir en la base de datos:
Pude solucionarlo cambiando la notación @JsonManagedReference por @JsonIgnore en la clase User.java
al realizar las validaciones funciona de manera perfecta el curso me gustó mucho.
que no me gustó y tengo que decirlo y es que el proyecto que dejan de Github no es el mismo del curso y eso afecta en varias partes del curso
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?