Я имею дело со следующим сценарием:
Мы используем наследование таблиц на подклассы , то есть первичные ключи конкретных таблиц являются ссылками на внешние ключи в таблице abstract . Суперкласс - Продукт , подклассы - Книга , DVD , AudioCD , ...
Теперь в суперклассе Java, скажем, Product.java
, у нас есть enum
типов продуктов: книга, DVD, музыка и т. Д.
У нас нет абстрактного столбца в абстрактной таблице и нет дополнительной таблицы для типов.
Можно ли сопоставить тип enum
в Product.java
с правильными значениями, в зависимости от конкретного объекта? Или необходим дискриминатор или дополнительная таблица?
... ....
Таблица для каждого подкласса: отрывок отображения наследования:
<class name="Product" table="PRODUCT">
<id name="id" column="IDPRODUCT" type="int">
<generator class="native" />
</id>
...
<joined-subclass name="Book" table="BOOK">
<key column="IDPRODUCT" />
<property ...
</joined-subclass>
...
... ...
Product.java
public class Product {
public enum Type { book, dvd, music }
...
private Type type;
...
Звучит странно? Может быть. Две отдельные стороны разработали часть OO и часть DB ...