gpt4 book ai didi

java - Spring 数据JPA : How to join two entities using annotations

转载 作者:行者123 更新时间:2023-12-01 16:29:43 25 4
gpt4 key购买 nike

我有两个实体(学生和项目),想要通过外键加入它们“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com