Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
使用JPA的SQL约束_Jpa_Database Design_Constraint Programming - Fatal编程技术网

使用JPA的SQL约束

使用JPA的SQL约束,jpa,database-design,constraint-programming,Jpa,Database Design,Constraint Programming,我有一个数据对象data和两种键对象KeyA和KeyB。我需要处理一个记录,它是一对密钥数据,即{KeyA | KeyB},数据。 每个键都必须映射到一个数据对象,反之亦然 问题是如何通过具有正确SQL约束和JPA的SQL实现 很明显,一些基本的外键魔术在这里不起作用。例如,如果键对象定义了外键到数据,则会打破唯一的映射条件:如果KeyA引用数据,KeyB引用数据,则允许在两个键之间共享一个数据。另一方面,如果数据定义了两个外键到键,则允许引用两个不同的键A和B。 即使添加另一个适配器表KeyA

我有一个数据对象data和两种键对象KeyA和KeyB。我需要处理一个记录,它是一对密钥数据,即{KeyA | KeyB},数据。 每个键都必须映射到一个数据对象,反之亦然

问题是如何通过具有正确SQL约束和JPA的SQL实现

很明显,一些基本的外键魔术在这里不起作用。例如,如果键对象定义了外键到数据,则会打破唯一的映射条件:如果KeyA引用数据,KeyB引用数据,则允许在两个键之间共享一个数据。另一方面,如果数据定义了两个外键到键,则允许引用两个不同的键A和B。
即使添加另一个适配器表KeyA KeyB数据也没有多大帮助。

为什么KeyA和KeyB不扩展Key,并拥有Key引用数据?使用单表继承或联接表继承将两个键的公共元素放在同一个表中。谢谢,看起来像我正在寻找的方法。