Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 避免使用单行表建立多表关系_Java_Spring_Hibernate - Fatal编程技术网

Java 避免使用单行表建立多表关系

Java 避免使用单行表建立多表关系,java,spring,hibernate,Java,Spring,Hibernate,我有一个关于hibernate约束的问题,关于一个我以前从未遇到过的问题。 假设我有一个表(快照),可以在其中添加一些快照行,每个快照行都必须与另一个表中的一行相关。但是这种关系不仅仅是一个表,多个表可以与这个快照表连接。但我想防止快照的一行已经链接到另一行表,比如: A.row1->Snapshot.row1 另一张桌子不可能为他的关系选择同一行 B.row1->Snapshot.row1. 因为如果没有,想象一下当我试图在a上的级联上执行删除时的问题 任何关于如何在快照中使

我有一个关于hibernate约束的问题,关于一个我以前从未遇到过的问题。 假设我有一个表(快照),可以在其中添加一些快照行,每个快照行都必须与另一个表中的一行相关。但是这种关系不仅仅是一个表,多个表可以与这个快照表连接。但我想防止快照的一行已经链接到另一行表,比如:

A.row1->Snapshot.row1
另一张桌子不可能为他的关系选择同一行

B.row1->Snapshot.row1. 
因为如果没有,想象一下当我试图在a上的级联上执行删除时的问题


任何关于如何在快照中使用hibernate唯一约束的想法都会使链接到另一个表(我想它被称为row1)的字段唯一

编辑:
您无法控制使用主键的其他表的数量。您可以做的是引入一个新表,在其中管理链接。在这里,您必须创建一个名为link_from的列,另一个名为link_to并使link_to唯一。

是id,它已经是唯一的,因为它是自动递增的。问题是控制不能有多个表可以创建此链接。A->Snapshot.id B->Snapshot.id这是不可能的。您必须引入一个附加表来保存这些链接。e、 g.一个名为linker的表,在那里您可以使列linkto(您的snapshot.row1)唯一。
@Column(unique = true)