Несколько DiscriminatorColumn в отображении наследования Hibernate - PullRequest
1 голос
/ 03 декабря 2011

Я понял, как использовать DiscriminatorColumn в отображении наследования Hibernate. Однако в моем сценарии у меня есть более сложный модуль наследования, где мне нужно определить два дискриминатора.Я хочу использовать одну таблицу для всего дерева наследования.По сути, родительский класс является абастрактом, и он представляет личность, тогда у меня есть две разные абстрактные реализации этого, Wife & Husband.так что в принципе мне уже нужен один дискриминатор.затем для каждого (Жена и Муж) у меня есть разные сообщения, которые необходимо сохранить, поэтому мне не нужно создавать дискриминатор для каждого (Жена и Муж).

Я придумал эту реализацию, но я 'Я застрял, как мне продолжить отсюда?

@Entity
@Table (name="sex")
@Inheritance (strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn (name="transaction_type", discriminatorType=DiscriminatorType.STRING)
public abstract class Person {
...
}

@Entity
@DiscriminatorValue("wife")
public class Wife extends Person {
...
}

Теперь, как мне поместить столбец дискриминатора на класс жены, так же, как я это сделал с родителем?

1 Ответ

1 голос
/ 26 января 2015

Вам не нужен второй дискриминатор. Wife Объект будет работать правильно.
В двухуровневых ситуациях наследования средним классам (в данном случае жене и мужу) не обязательно иметь @DiscriminatorColumn.
связанный вопрос Может быть полезна проблема с 2 уровнями наследования .
другой вопрос Hibernate Inheritance Single_table

...