我有两个实体(学生和项目),想要通过外键加入它们“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 注释是否适用?提前致谢。
最佳答案
是的,它适用。 首先,您需要在项目类中将student_id更改为学生类
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "student_id",nullable = false)
private Student student;
其次,您需要向 oneToMany 注释添加“map”参数
@OneToMany(mappedBy = "student")
private List<Project> projects;
就是这样。
旁注:如果可以将多个学生分配到同一项目,您还可以考虑多对多关系
关于java - Spring 数据JPA : How to join two entities using annotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62076667/