JsonIgnore的使用

在使用Hibernate进行一对多关联关系映射时,在进行查询时,出现

Infinite recursion (StackOverflowError) (through reference chain

错误信息。

(1)PersonEntity

@Entity( name = "t_person")
public class PersonEntity{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birth;

    @OneToMany
    @JoinColumn(name = "person_id")
    private List<AddressEntity> addresses;

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public LocalDate getBirth() {
        return birth;
    }

    public void setBirth(LocalDate birth) {
        this.birth = birth;
    }

    public List<AddressEntity> getAddresses() {
        return addresses;
    }

    public void setAddresses(List<AddressEntity> addresses) {
        this.addresses = addresses;
    }
}

(2)AddressEntity

@Entity( name = "t_address")
public class AddressEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String address;

    private char flag;

    @ManyToOne
    private PersonEntity person;

    public Long getId() {
        return id;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public char getFlag() {
        return flag;
    }

    public void setFlag(char flag) {
        this.flag = flag;
    }

    @JsonIgnore
    public PersonEntity getPerson() {
        return person;
    }

    @JsonProperty
    public void setPerson(PersonEntity person) {
        this.person = person;
    }
}

说明:在getPerson上面增加@JsonIgnore注解即可解决,但是此时在通过JSON方式进行保存时,则无法保存person对象,通过在setPerson上面增加@JsonProperty解决。

{
    "address": "中国",
    "flag": "0",
    "person": {
        "id": 2
    }
}

 

posted @ 2020-12-22 15:34  yshy  阅读(2885)  评论(0编辑  收藏  举报