首页 > 解决方案 > Spring boot JPA多对多关联问题

问题描述

我在两个实体用户和表单之间有多对多的关系。我的课在下面。用户.java

public class User {    
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    .....
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "userformtable", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "form_id"))
    private List<forms> userform = new ArrayList<forms>();

    // CONSTRUCTOR AND GETTER SETTER    
}

AND forms.class

public class forms {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    
    @Column(unique = true)
    private String formname;
    
    @ManyToMany(mappedBy = "userform", fetch = FetchType.LAZY)
    private List<User> form = new ArrayList<User>();   
}

我有关系船的数据库表如下

user_id |  form_id
--------------------
1       |       4
--------------------
1       |       6
-------------------
1       |       3
------------------
1       |       7 
=================== 
3       |       3
====================
3       |       7
===================

当我尝试使用 spring data jpa 获取所有用户时,我没有得到 id 为 3 的用户对象。我只得到用户 id。这是我的 json 回复。

0: {…}
1: 3 (this record is for user id 3)
2: {…}

谁能帮我这个?

提前致谢。

标签: spring-data-jpa

解决方案


我已经通过在表单类中使用 @JsonIgnore 注释来解决。

@ManyToMany(mappedBy = "userform", fetch  = FetchType.LAZY)
@JsonIgnore
private List<User> form = new ArrayList<User>();

推荐阅读