Spring:每个关系都有关系 table 的怪异单数映射

Spring: weird onetomany mapping with relational table for each relation

我正在尝试按照别人告诉我的方式建立一些关系。我有 6 tables...让我们称它们为 A、B、C、D、E 和 F。

它们之间的关系总是1:N。

我被要求通过每次创建一个新的关系 table 来映射 Spring/JPA 中的那些 table,如下所示:

A + B -> AB
AB + C -> ABC
ABC + D -> ABCD
ABCD + E -> ACBDE
ACBDE + F -> ABCDEF

...其中 AB、ABC、ACBD、ABCDE 和 ACBDEF 是我必须创建的新关系 table。

我觉得像这样映射 table 很奇怪,当它们之间的关系不是 N:N,而是 1:N 时更是如此。另外,我不明白这样做的目的,我来这里是想看看你们是否可以帮助我解决这两个问题:理解为什么这样做有意义,以及如何实现这一点?

我已经试了 2 天了,但是映射 table 就像 N:N 一样,我总是收到类似“Caused by: org.hibernate.MappingException: Foreign键 (FKsxjpculqrp0noj2x8cetijcof:CEV_ambito [id_amb])) 必须与引用的主键 (CEV_ambito [FK_tea_amb,id_amb]) 具有相同的列数

请提供有关如何正确执行此操作的任何帮助或指示,我们将不胜感激。谢谢大家

这确实是一个奇怪的要求(如果我们知道那些 tables 中的数据可能更有意义)但是无论如何要获得 1:N 你应该在next table 所以 B 有指向 A 的外键,C 有指向 B 的外键等等。

默认情况下,Hibernate (jpa) 将使用单独的中介 table 进行映射,这使得它看起来像多对多,但您可以使用 @JoinColumn 自定义此行为,如下所示

https://www.baeldung.com/jpa-join-column#oneToMany_mapping