JPA Repository Join - 从数据库中检索数据时连续循环数据

JPA Repository Join - Continuous Loop of data when retrieving data from DB

我有两个存储库 - 用户和地址。

用户与地址具有一对一的关系,并且它们通过 ID 链接。请参阅下面的代码片段。当我使用 JPA 存储库提取数据时,我基本上得到了一个恒定的数据循环。

EG:

<Data>
 <User>
   <id>1</id>
   <name>Mary</name>
   <dob>21/01/1990</dob>
   <Address> 
      <id>1<id>
      <address>123 Main Street</address>
       <User>
         <id>1</id>
          <name>Mary</name>
          <dob>21/01/1990</dob>
        <Address> 
          <id>1<id>
          <address>123 Main Street</address>
         <User>
            ....

等等这样导致我的查询花费大量时间 运行。有没有办法阻止 User 对象在 Address 对象中返回?任何帮助将不胜感激。

@Entity
@Data
@Table(name = "ADDRESS")
 public class Address{

@Id
@Column()
private String id;

@Column()
private String address;

@OneToOne (fetch = FetchType.LAZY)
@JoinColumn(name = "id")
private User user;

}

@Entity
@Data
@Table(name = "User")
 public class User{

@Id
@Column()
private String id;

@Column()
private String name;

@Column()
private String dob;

@OneToOne ()
@JoinColumn(name = "id")
private Address address;

}

这是正常行为。序列化器调用 getter 来序列化被 Hibernate Proxy 加载数据拦截的数据,即使它们是惰性的。为防止这种情况,您必须将 @JsonBackReference 添加到 User class 的 address 字段,并将 @JsonManagedReference 添加到 user 的字段Address class.