Я работаю над практическим API, и это мои занятия. Объекты и отношения сохраняются правильно, если я использую Postman. API также работает с JWT, и это также работает правильно, поскольку он обычно генерирует токен доступа.
У меня проблема в том, что при попытке получить все темы из базы данных с помощью GET метода, я обнаружил 4 ошибки в консоли.
1- java.lang.IllegalStateException: невозможно вызвать sendError() после фиксации ответа
2- java.lang.StackOverflowError: null
3- org.springframework.security.access.AccessDeniedException: доступ запрещен
4- Джакарта. servlet.ServletException: невозможно обработать исключение безопасности Spring, поскольку ответ уже зафиксирован.
Я хочу подчеркнуть, что конечная точка для получения тем является общедоступной и не имеет никаких ограничений.< /p>
Вот моя сущность «пользователь».
@Table(name="usuario", uniqueConstraints = {@UniqueConstraint(columnNames = {"username","email"})}) @Entity public class Usuario implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id_usuario;
private String nombre;
private String apellido;
private String curso;
private String username;
private String password;
private String email;
@Enumerated(EnumType.STRING)
private Role rol;
@OneToMany (mappedBy = "usu", cascade = CascadeType.ALL)
private List lista_topicos;
@OneToMany (mappedBy = "usu_respuesta", cascade = CascadeType.ALL)
private List lista_respuestas;
}
Субъект «Топико».
@Entity
public class Topico {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id_topico;
@Column(nullable = false)
private String titulo;
@Column(nullable = false)
private String mensaje;
@Temporal(TemporalType.DATE)
private Date fecha_creacion;
@Convert(converter = TrueFalseConverter.class)
private boolean estado;
@ManyToOne
@Cascade(org.hibernate.annotations.CascadeType.MERGE)
@JoinColumn(name = "usu_id")
private Usuario usu;
@OneToMany (mappedBy = "topic", cascade = CascadeType.ALL)
private List lista_respuesta;
}
Субъект «respuesta».
@Entity
public class Respuesta {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id_respuesta;
private String texto_respuesta;
@ManyToOne
@Cascade(org.hibernate.annotations.CascadeType.MERGE)
@JoinColumn(name = "topico_id")
private Topico topic;
@ManyToOne
@Cascade(org.hibernate.annotations.CascadeType.MERGE)
@JoinColumn(name="user_id")
private Usuario usu_respuesta;
}
Подробнее здесь: https://stackoverflow.com/questions/771 ... springboot