繁体   English   中英

Spring 数据 JPA:如何使用注释连接两个实体

[英]Spring Data JPA: How to join two entities using annotations

我有两个实体(学生和项目)并希望通过外键“student_id”加入它们

@Entity
@Data
public class Project {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;
    private Long student_id;
}
@Entity
@Data
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    @OneToMany
    private List<Project> projects;
}

简单地说,当我向学生存储库发送 GET 请求时,我想让学生获得项目列表。

例如;

// > json for POST to Project
{
    "title":"java",
    "student_id":1
}
// > json for POST to Student
{
    "name":"Bill Gates"
}

当我向 Student 发送 GET 请求时,我希望看到的内容如下所示;

[
   {
      "id":1,
      "name":"java",
      "projects":[
         {
            "id":1,
            "title":"java"
         }
      ]
   }
]

仅使用 JPA 注释是否适用? 提前致谢。

是的,它适用。 首先,您需要在项目 class 中像这样将 student_id 更改为 student class

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "student_id",nullable = false)
private Student student;

其次,您需要在 oneToMany 注释中添加 'map' 参数

@OneToMany(mappedBy = "student")
private List<Project> projects;

就是这样。

旁注:如果可以将多个学生分配给同一个项目,您也可以考虑多对多关系

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM