在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

spring-boot hibernate 双向关联查询的坑

有实体类user 和Info ,info对应的表中有user的主键作为外键,需求是查询info可以得到对应的user,查询user可以得到对应的info。

package com.zxy.demo.entity;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;import com.fasterxml.jackson.annotation.JsonIgnoreType;import javax.persistence.*;@Entitypublic class User {    @Id    @GeneratedValue    private Integer id;    private Integer age;    @OneToOne(mappedBy = "user",cascade = CascadeType.ALL)    private Info userInfo;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public Info getUserInfo() {        return userInfo;    }    public void setUserInfo(Info userInfo) {        this.userInfo = userInfo;    }}package com.zxy.demo.entity;import javax.persistence.*;@Entitypublic class Info {    @Id    @GeneratedValue    private Integer id;    @Column(nullable = false)    private String idCard;    @OneToOne(cascade = CascadeType.ALL)    @JoinColumn(unique = true)    private User user;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getIdCard() {        return idCard;    }    public void setIdCard(String idCard) {        this.idCard = idCard;    }    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    @Override    public String toString() {        return "Info{" +                "id=" + id +                ", idCard='" + idCard + '\'' +                ", user=" + user +                '}';    }}当调用jpa的findOne方法时,hibernate会注入user中的info,然后又一次注入info中的user,这样很蠢。
网上找到控制json解析的注解,这样做还不如直接单项关联,治标不治本。
求一个解决方案!

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

控制json解析的深度就好了,没有其他更合适的方法的。


你可以看一下这个回答:



spring-data-jpa多对多双向关联,查询的时候进入死循环

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册