Spring boot @JoinColumn及其如何链接两个表
我对使用数据库完全是新手,也是Spring Boot的初学者,因此,对于任何错误的术语/模糊逻辑,我深表歉意。这里有一些类似的问题,但我还没有找到我想要的答案,所以我决定发布。闲逛 我正在读一篇关于在SpringBoot中加入表格的文章。他们有一个教师班和一个课程班,这是一对多的关系。他们没有写完整的课程,但上面说你可以进入教师课堂,做:Spring boot @JoinColumn及其如何链接两个表,spring-boot,jpa,Spring Boot,Jpa,我对使用数据库完全是新手,也是Spring Boot的初学者,因此,对于任何错误的术语/模糊逻辑,我深表歉意。这里有一些类似的问题,但我还没有找到我想要的答案,所以我决定发布。闲逛 我正在读一篇关于在SpringBoot中加入表格的文章。他们有一个教师班和一个课程班,这是一对多的关系。他们没有写完整的课程,但上面说你可以进入教师课堂,做: @OneToMany @JoinColumn(name = "TEACHER_ID", referencedColumnName = &q
@OneToMany
@JoinColumn(name = "TEACHER_ID", referencedColumnName = "ID")
private List<Course> courses;
@ManyToOne
@JoinColumn(name = "TEACHER_ID", referencedColumnName = "ID")
private Teacher teacher;
让我不舒服的是,在这两种情况下,给JoinColumn的参数都是相同的。假设两个表都有一个名为ID的东西,Spring如何知道使用哪一个呢?它是否从两个表开始,寻找教师id。然后,在找到后,它切换到另一个表以获得id?实际上,这是关系数据库中一对多映射的方法。 要实现1-N关系,您只需具备:
Table One -> primary_key
Table Many -> primary_key, fk_one_primary_key
通过上面的配置,给定一个表一个
实体,您可以使用primaryKey foreignKey连接获得它的所有多个
关系,反之亦然
现在,在您共享的代码中,这两个参数描述为:
ID
->表的主键列One
/Teacher
TEACHED\u ID
->表的外键列很多
/课程
谢谢!所以Spring知道外键总是在关系的多个方面?是的,这是隐式的。其他框架/语言也会这样做。再次感谢。