• 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
        }
    }
  • 相关阅读:
    初级安全入门——安全漏洞的检测与利用
    Gazebo11的安装与启动
    ROS入门(四)——Gazebo的基本使用
    ROS入门(二)——服务和全局参数
    ROS入门(一)——基本概念和话题
    数据结构与算法(三+)——列表的Java实现
    Java EE入门(二十)——Maven基础
    Java EE入门(十九)——Redis基础
    Java EE入门(十八)——Ajax&JSON基础
    npm中如何更新自己已经发布的1.0.0的模块包?
  • 原文地址:https://www.cnblogs.com/yshyee/p/14173375.html
Copyright © 2020-2023  润新知