JsonIgnore不工作

时间:2017-01-02 12:31:42

标签: java json rest

@JsonIgnore注释无法正常工作且我未在Spring Framework使用此处的代码如下:

import Plat.Hibernate.Util.DataBaseObject;
import org.codehaus.jackson.annotate.*;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

@Entity
public class Parent implements DataBaseObject{
    private int id;
    private String name;
    @JsonIgnore
    private List<Child> child;

    public Parent(){
        child = new ArrayList<>();
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @OneToMany(mappedBy = "parent",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    @JsonIgnore
    public List<Child> getChild() {
        return child;
    }

    @JsonIgnore
    public void setChild(List<Child> child) {
        this.child = child;
    }
}

和另一个班级:

import org.codehaus.jackson.annotate.*;
import javax.persistence.*;

@Entity
public class Child implements DataBaseObject{
    private int id;
    private String name;
    @JsonIgnore
    private Parent parent;

    public Child() {
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    @JoinColumn(name = "parent_id")
    @JsonIgnore
    public Parent getParent() {
        return parent;
    }

    @JsonIgnore
    public void setParent(Parent parent) {
        this.parent = parent;
    }
}

我在我的项目中使用Maven构建工具,因此这是@JsonIgnore注释的依赖项:

<dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-lgpl</artifactId>
        <version>1.9.13</version>
    </dependency>

问题是,当我在这个实体上使用REST API请求时,我得到无限循环(错误500内部错误)所以我需要使用@JsonIgnore注释来避免这个循环并且它无法正常工作

0 个答案:

没有答案