Изменение столбца дискриминации в одном подклассе таблицы с наследованием JPA - PullRequest
1 голос
/ 24 сентября 2010

У меня есть модель предметной области, которая выглядит следующим образом:

     Instruction
       |      \
     Money    Other
     /   \ 
   Unit Cash 

, и я хочу сопоставить эту модель с моей БД с использованием JPA.

Все классы отображаются на одну и ту же таблицу вБД, (T_INSTRUCTION).

Итак, я начал со стратегии наследования SINGLE_TABLE в jpa.Разделение классов Money и Other с использованием orm xml discriminate-column="MONEY_TYPE_ID".

Моя проблема в том, что я также хочу разделить подклассы Cash и Unit, но они различаются в другом столбце "CASH_TYPE_ID ".

Сканирование документов мне не представляется возможным, но мне было интересно, есть ли у кого-нибудь какие-нибудь хитрости или обходные пути для реализации этого?

Приветствия

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Если посмотреть на это немного дальше, в текущей спецификации JSR нет решения этой проблемы.

Итак, в конце концов я решил использовать наследование отдельных таблиц jpa для типов Instruction 'Money' и 'Other', а затем разрешить 'Cash' и 'Unit' подтипов простого наследования от них. (т.е.) 'discriminate-column="MONEY_TYPE_ID"'

Затем используйте конструктор в 'cash' и 'unit', чтобы установить поле, которое отображается в CASH_TYPE_ID.

PS: код выложу позже

1 голос
/ 24 сентября 2010

Обходной путь может заключаться в том, чтобы иметь разные значения дискриминатора для каждого подкласса и только один столбец дискриминатора.т.е. деньги = 1, другие = 2, единица = 3, наличные = 4

...