Javascript org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套的异常是java.lang.StackOverflowerr

Javascript org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套的异常是java.lang.StackOverflowerr,javascript,java,spring,datatables,Javascript,Java,Spring,Datatables,我不明白我所犯的这个错误,它已经变得非常令人沮丧。。。我试图使用DataTables来显示具有oneToMany关系的表中的数据,在视图中显示数据的唯一方法是将关系设置为null,这样上面的错误就会消失,但我不知道如何按需要显示数据。提前谢谢 在用户中: @JoinColumn(name = "id_rol", referencedColumnName = "id_rol", foreignKey = @ForeignKey(name = "fk_di")) @ManyToOne(option

我不明白我所犯的这个错误,它已经变得非常令人沮丧。。。我试图使用DataTables来显示具有oneToMany关系的表中的数据,在视图中显示数据的唯一方法是将关系设置为null,这样上面的错误就会消失,但我不知道如何按需要显示数据。提前谢谢

在用户中:

@JoinColumn(name = "id_rol", referencedColumnName = "id_rol", foreignKey = @ForeignKey(name = "fk_di")) 
@ManyToOne(optional = false) 
private Rol rol;


如果有人对解决方案感兴趣:

  • 我将此类添加到我的项目中,并更改了控制器的最后一行:

    GsonBuilder gsonBuilder = new GsonBuilder();
    new GraphAdapterBuilder().addType(User.class).registerOn(gsonBuilder);
    Gson gson = gsonBuilder.create();
    return gson;
    
    这样我就得到了这个Json响应,以及所有需要的信息:

    {"draw":"1","recordsFiltered":"3","recordsTotal":"3","data":[{"0x1":{"idUser":3,"username":"grtyg","name":"","lastname":"","totalRecords":3,"rol":{"idRol":2,"rol":"User ad"}}}}]}
    
  • 我可以简单地在Rol实体中使用javax@Transient注释,如下所示:

     @Transient 
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "rol")
     private Set<User> users;
    
    @Transient
    @OneToMany(cascade=CascadeType.ALL,mappedBy=“rol”)
    私人用户;
    
    但后来我需要使用它

  • GsonBuilder gsonBuilder = new GsonBuilder();
    new GraphAdapterBuilder().addType(User.class).registerOn(gsonBuilder);
    Gson gson = gsonBuilder.create();
    return gson;
    
    {"draw":"1","recordsFiltered":"3","recordsTotal":"3","data":[{"0x1":{"idUser":3,"username":"grtyg","name":"","lastname":"","totalRecords":3,"rol":{"idRol":2,"rol":"User ad"}}}}]}
    
     @Transient 
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "rol")
     private Set<User> users;