我有这段代码,但浏览器上的输出不是我想要的
@GetMapping(path = "/all")
public @ResponseBody List<User> getAllUsers() {
return userRepository.findAll();
}
输出:
[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users":[{"id":4,"firstName":"busayo","lastName":"amowe","email":"amoweolubusayo@gmail.com","password":"$2a$10$09kGDhlEp.Xmj0ocDjGLTO.03z.kGQKm2ZHcsNetDpH0r6m1rkVIu","roles":[{"id":1,"name":"ROLE_ADMIN","users"
不是应该打印一次吗?它显示 StackOverFlow 错误,而我的 getJson 函数无法显示它。我能做什么?
最佳答案
user
之间存在循环依赖关系和user role
实体。
为了将您的回复返回给客户,您的 List<User>
必须序列化。你必须告诉 Jackson 如何处理循环,否则它将因堆栈溢出异常而失败。
public class User {
@JsonBackReference
public List<Role> roles;
// ...
}
public class Role {
@JsonManagedReference
public List<User> users;
// ...
}
有关双向关系的 Jackson 教程,请参阅 https://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion
关于java - Spring boot userRepository.findAll() 显示太多次并导致 stackoverflow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52821467/