执行get请求时为null

我在尝试对/ users端点执行get请求时遇到问题,而不是返回我想要的东西,而是在下面返回此错误:

java.lang.StackOverflowError: null

    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_171]

    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~

我的端点方法:


 @Override

    public ResponseEntity<List<M>> findAll() {

        List<M> models = repository.findAll();


        if(models == null || models.isEmpty()){

            return ResponseEntity.noContent().build();

        }


        return ResponseEntity.ok(models);

    }

用户模型:


@Entity

@Table(name = "UN_USERS")

public class User extends AbstractModel {


    @Column(name = "USERNAME", unique = true)

    private String username;


    @Column(name = "UUID")

    private String uuid;


    @Column(name = "COINS")

    private long coins;


    @Column(name = "TOKENS")

    private long tokens;


    @ManyToOne

    @JoinColumn(name = "GROUP_ID", nullable = true)

    private Group group;


    //getters & setters... 

}

组模型:


@Entity

@Table(name="UN_GROUPS")

public class Group extends AbstractModel{


    private String prefix;


    @OneToMany(mappedBy = "group")

    private Set<User> users;


    @ManyToMany(mappedBy = "groups")

    private Set<Permission> permissions;

}

有什么可能会导致此错误,我该如何解决?


慕森卡
浏览 325回答 3
3回答

慕森王

您必须添加@JsonIgnore,private Group group;以便杰克逊可以忽略它。否则,杰克逊将尝试序列化,group然后在对象group的UserfromSet<User> users中创建一个返回属性的循环Group。

富国沪深

您可以使用@OneToMany(mappedBy =@OneToMany(mappedBy&nbsp;=&nbsp;"group",cascade&nbsp;=&nbsp;CascadeType.ALL&nbsp;,fetch&nbsp;=&nbsp;FetchType.LAZY)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java