![](/img/trans.png)
[英]Join more than two tables using Annotations in Spring Data 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.