Как создать схему базы данных для сохранения специальной иерархии классов - PullRequest
0 голосов
/ 07 марта 2012

На рисунке ниже показана иерархия классов, которую необходимо сохранить.Но я не могу придумать решение для отношений, отмеченных красным цветом.

Отношение Assignment-ExtensionValue означает, что в ExtesionValue должен быть составной PK, определенный как (owner_oid, id) из Assignment, но отношение Role-ExtensionValue означаетдолжен быть только простой PK, определенный как (oid) из роли.

owner_oid сопоставлен с object.oid Я не могу создать новый ключ PK для ExtensionValue, еслиэто не совсем необходимо, потому что я бы потерял его при обработке объектов в бизнес-логике.Как его сохранить и как сопоставить его с аннотациями 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>
...