当前位置: 首页 > 知识库问答 >
问题:

Spring Boot JPA多对多的关系。得到意外响应

莘绍元
2023-03-14

我有两个实体用户和组,两个实体之间的关系是多对多。当我调用view-group/groupname时,我得到了group的用户列表。但是当我调用view-user/useremail时,我没有得到包含用户详细信息的组列表。

@Entity
@Table(name = "group_")
public class Group {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotBlank
    private String groupName;

    @ManyToMany
    @JoinTable(name = "group_user", 
              joinColumns = { @JoinColumn(name = "group_id") }, 
              inverseJoinColumns = {@JoinColumn(name = "user_id") })
    public Set<User> usersOfgroup = new HashSet<>();

    public Group() {

    } 
}
@Entity
@Table(name="users")
public class User {
  
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @NotBlank
    @Column(name="name")
    private String name;
    
    @NotBlank
    @Column(name="email")
    private String email;
            
    @JsonIgnore
    @ManyToMany(mappedBy = "usersOfgroup")
    public Set<Group> memberInGroups =new HashSet<>();
    
    public User() {
        
    }
{
    "id": 1,
    "groupName": "Group1",
    "usersOfgroup": [
        {
            "id": 2,
            "name": "Abhishek",
            "email": "Abhishek@abc.com",
        }
    ]
}
{
    "id": 2,
    "name": "Abhishek",
    "email": "Abhishek@abc.com",
}
{
    "id": 2,
    "name": "Abhishek",
    "email": "Abhishek@abc.com",
    "memberInGroups":[
          {
            "id": 1,
            "groupName": "Group1",
         }
       ]
}

共有1个答案

云鸿达
2023-03-14

您已经在public set memberInGroups=new hashset<>()上添加了 @jsonignore,这就是为什么json响应没有这方面的数据。删除注释,您将看到预期的响应

@jsonignore注释用于忽略序列化和反序列化中使用的逻辑属性。

 类似资料:
  • 我还想知道如何定义每个模型上的关系--你是否需要或者是否可以只在用户上定义关系?

  • 问题内容: 伙计们,我正在努力为我的公司制作一个简单的票证生成系统,以吸引人。目前,我的MSSQL数据库中有一个名为的表,另一个名为的表。 我的应用程序是C#Windows窗体,因此在新的票证生成窗体上,我有许多文本框和一个用于分配工程师的comboBox,由填充。生成票证后,以这种形式输入的所有信息都将与from一起存储。 效果很好,但是后来我的客户要求我添加选项,以便可以在一张票上分配3名工程

  • 我在拉雷维尔的这种多对多关系中过得很艰难。我有一个多对多的关系,项目和人。我还有第三个表roles(有两列:id、name),其中包含一个人在项目中可以扮演的角色(在本例中为“actor”、“director”等)。透视表person\u project有“person\u id”、“project\u id”和“role\u id”列。我成功地让所有与项目相关的人员使用 但是我怎么能让人在项目中

  • 问题内容: 我目前正在使用ActiveAndroid,并且在过去的几个小时里一直在尝试建立多对多关系,但是我还是无法正常工作。我希望你能帮助我: 我有“学生”和“课程”的模型,一个学生可以有很多课程,而一个课程有很多学生。基本上,这就是我在“ StudentCourse”模型中所拥有的: 现在,我要做的是使用以下代码获取“课程X中的所有学生”: 但是我收到以下错误: java.lang.Class

  • 在本章中,让我们了解和学习多对多的关系。要表示多对多关系,必须创建第三个表(通常称为联接表),将多对多关系分解为两个一对多关系。 为此,我们还需要添加一个联接表。 下面先添加一个表。表的定义如下所示 - 现在创建一个多对多的关系。假设有多个作者在多个项目上工作,反之亦然。 如您所知,我们在中有一个字段,所以为它创建了一个表。但现在不再需要这个字段了。 选择字段,然后按下删除 按钮,将看到以下消息。