zoukankan      html  css  js  c++  java
  • 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
        }
    }
  • 相关阅读:
    asp.net 实现一级域名与二级域名共享COOKIE
    用jQuery解决弹出层的问题
    让PPC手机增加自动对时功能
    漂亮的弹出层效果jQuery
    用C# 实现C/S模式下软件自动在线升级
    C#应用中设计自己的配置文件
    开心网外挂程序
    C#实现IIS的启动、停止、重启
    类似MSN弹出通知消息功能的控件[转]
    C#修改app.config配置文件信息
  • 原文地址:https://www.cnblogs.com/yshyee/p/14173375.html
Copyright © 2011-2022 走看看