Используя Hibernate, я пытаюсь реализовать взаимно-однозначное отношение между одним фиксированным типом домена A и другим типом домена B, тип которого является любым типом, который реализует определенный интерфейс.
Ситуация:
Система имеет три разных типа домена;Страна, Склад и Магазин, которые реализуют интерфейс FlagSubscriber.
Я хотел бы присоединиться к FlagSubscribeers с Flags.Каждый флаг может быть связан с 0 или 1 флагом подписчиков.
Реализация:
В базе данных у меня есть таблицы для страны, склада, магазина и флага, каждый из которых имеет идентификаторстолбец и различные другие столбцы для их конкретных атрибутов.Чтобы соединить флаги с FlagSubscribeers, я создал таблицу ссылок, которая выглядит следующим образом:
- flag_id
- subscriber_id
- subscriber_type
Идентификационные поля не требуют пояснений, subscriber_type - это текстовое поле, которое определяет, относится ли subscriber_id к стране, складу или магазину.
Вопрос:
ИспользованиеАннотации Hibernate, как мне сообщить Hibernate, как сопоставить FlagSubscribeers в классе Flag?
Я предполагаю, что мне нужно использовать дискриминаторы, но я не совсем уверен, как это сделать для моего конкретного случая, или даже если он
Любые ссылки на примеры, предложения или идеи приветствуются!