【问题标题】:Can One Attribute of A Compound/Composite Key Be Null?复合/复合键的一个属性可以为空吗?
【发布时间】:2014-02-09 05:28:54
【问题描述】:

一个复合键由两个类的两个 Id 组成。在我的用例中,其中一个 Id 可能不会呈现给具有复合键的实体。复合键可以允许一个元素为空吗?我在网上找不到相关文件。

【问题讨论】:

    标签: hibernate jpa


    【解决方案1】:

    我想这个问题已经回答了:here。一般来说,主键为空是个坏主意(通常数据库不允许你有空的 PK)。

    【讨论】:

    • 我的问题是复合键中的一个元素为空,但不是全部。换句话说,复合键不会为空,但一个元素可能为空。
    • 我的问题的背景是关于一对多关系的非规范化。我在我们的系统中有一个一对多的关系。我需要通过扁平化一对多关系来创建一个镜像实体。我有一个复合键,它由镜像实体中的一对多关系中的两个实体的 id 组成。
    • 只是为了确保我理解您,您是说您有两个表(A 和 B),并且您想要创建一个表示这两个表的实体,使用它们的 PK 作为组合钥匙?
    • 那么,为什么不能在关系的“多”部分使用表的PK呢?由于它是一对多而不是多对多,因此该 PK 仍然是唯一的,您无需担心维护复合键。
    • 可以顺便做一下。我是从查询的角度考虑的。大多数查询将采用父 ID,而不是子 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多