У меня есть абстрактный класс A и два класса B и C, реализующие A.
abstract class A implements Serializable {
Long id
String code
String description
Map<Locale, String> localizedDescriptions
}
class B implements A {}
class C implements A {}
Со следующим отображением гибернации:
<class name="A" abstract="true">
<id name="id">
<generator class="org.hibernate.id.enhanced.TableGenerator"/>
</id>
<property name="code" unique="true" not-null="true"/>
<property name="description" not-null="true"/>
<map name="localizedDescriptions" lazy="false">
<key property-ref="code" column="code"/>
<index column="locale" type="locale"/>
<element column="description" type="string" not-null="true"/>
</map>
<union-subclass name="B"/>
<union-subclass name="C"/>
Таблицы базы данных B и C, которые я получаю, имеют поля id, code и description, как и ожидалось. Однако нет таблиц b_localized_description или c_localized_description, но есть таблица a_localized_description, чего я не хочу
Итак, возможно ли иметь желаемое поведение без определения карты для каждого подкласса?