Я сталкиваюсь с неординарным дизайном, и я не совсем уверен, как с этим справиться. Таблица, которую я пытаюсь отобразить, выглядит следующим образом:
TABLE example {
ID INT,
CATEGORY VARCHAR,
PROPERTY VARCHAR,
VALUE VARCHAR);
Один идентификатор может иметь несколько строк (очевидно, не первичный ключ). В качестве примера это может выглядеть так:
# ID CATEGORY PROPERTY VALUE
1 general_info name order 1
1 general_info date 1/1/2009
...
У каждого идентификатора может быть несколько разных категорий. Имена свойств уникальны для любой заданной комбинации (идентификатор, категория).
(РЕДАКТИРОВАТЬ) Поле ID является внешним ключом для объектов в другой таблице. Мне нужно иметь возможность получить от этих объектов различные свойства, хранящиеся в этой таблице, используя только поле идентификатора. Если нужно использовать составной ключ, как мне связать его?
(EDIT2) Я также думаю, что деталь, которую вы здесь упускаете, заключается в том, что все данные с одинаковым идентификатором в первом столбце концептуально принадлежат одному и тому же объекту. Мне не нужен отдельный экземпляр для каждой комбинации (ID, CATEGORY).
Очевидно, это не очень нормализовано. В худшем случае я создал несколько дополнительных таблиц, которые нормализуются и копируют все, но мне было интересно, кто-нибудь мог бы предложить разумный способ напрямую передать эту информацию в объекты с поддержкой hibernate? При необходимости в какой-то сумке свойств String.
Кстати, я использую hibernate-аннотации.