JPA一对多关系映射

时间:2019-04-27 16:26:27

标签: java spring-boot jpa

我是Spring Boot的新手,我有一个Student.java类和另一个Project.java类。每个学生可以有多个项目(关系为1:M)。我要映射它们,并且具有以下内容:

在Student.java中:

@OneToMany(mappedBy="student")
private List of projects;

在Project.java中:

@ManyToOne <br>
@JoinColumn(name=student_id)
private Student student; 

我知道@JoinColumn在数据库的 project 表中添加了一列,但是我不明白 mappedBy 的作用是什么?我发现:“ mappedBy表示实体是关系的逆向。关系的逆向是什么意思?

我尝试了数据库中的代码,当我没有mapedBy时,我在数据库中得到3个表(一个包含projectId和studentId的表),但是我不知道它是如何工作的。感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您可以查看https://docs.oracle.com/javaee/6/api/javax/persistence/OneToMany.html#mappedBy()了解更多详细信息。

  

拥有关系的字段。除非关系是单向的,否则为必需。

它告诉 JPA ,查找是否有名称为student的bean属性并使用此配置。 在您的代码中,它将在Project实体中找到配置。