如何创建数据库模式以保持特殊的类层次结构

时间:2012-03-07 11:34:28

标签: database hibernate hibernate-annotations

我在下面的图片上显示了类层次结构,需要保留。但我想不出用红色标记的关系的解决方案。

Assignment-ExtensionValue关系意味着在ExtesionValue中应该有来自Assignment的复合PK定义为(owner_oid,id),但是关系Role-ExtensionValue意味着应该只有一个简单的PK定义为来自Role的(oid)。

owner_oid 映射到 object.oid 如果不是必需的话,我无法为ExtensionValue创建新的PK密钥,因为在处理业务对象时我会丢失它逻辑。应该如何持久化以及如何使用Hibernate注释进行映射?

class hierarchy/hibernate pojos

我正试图坚持这样的对象

<role oid="123">
    <assignment id="1">
        <some-extension-value>foo</some-extension-value>    <--- THIS
        <other-value>1</other-value>                        <--- THIS
    </assignmen>
    <assignment id="2">some stuff</assignment>
    ...other elements...
</role>

<user oid="232">
    <extension-value>bar</extension-value>                  <--- THIS
    ..other elements...
</user>

0 个答案:

没有答案