Spring Bootで再帰的な検索を防ぐ2つの方法


本文では主にSpring Bootの再帰的な検索防止に関する内容を紹介します。これは小さな注意です。ここには2つの方法があります。簡単です。以下で詳しく紹介します。
1、application.propertiesに配置する。

#     
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
2、イベントにコメントを追加する
  • 関連オブジェクトに@Json BackReference
  • を追加します。
  • クラスに@JsonIgnoreProperties("roles") を追加し、括弧には検出不要なオブジェクトを記入する。
  • 
    @Entity
    @Table(name = "users")
    //@JsonIgnoreProperties("roles")
    public class User implements Serializable {
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Id
     private int id;
     @Column
     private String name;
     @Column(name = "created_at")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createdAt;
     @ManyToOne
     @JoinColumn(name = "dep_id")
     @JsonBackReference //           
     private Department department;
     @ManyToMany(cascade = {}, fetch = FetchType.EAGER)
     @JoinTable(name = "user_role", joinColumns = {@JoinColumn(name = "user_id")}, inverseJoinColumns = {@JoinColumn(name = "role_id")})
     @JsonBackReference
     private List<Role> roles = new ArrayList<>();
     ......
    }
    締め括りをつける
    以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に一定の助けをもたらすことを望んでいます。もし疑問があれば、メッセージを残して交流してください。ありがとうございます。