У меня проблема с отображением для этой структуры, которую я спроектировал
public abstract class A<T> {
private int discriminator_value = -1;
private T value;
//...
}
public class One extends A<String> {
public One(){
setDiscriminatorValue(1);
}
//...
}
public class Two extends A<BigDecimal> {
public Two(){
setDiscriminatorValue(2);
}
//...
}
public class Three extends A<Date> {
public Three(){
setDiscriminatorValue(3);
}
//...
}
public class TheTargetSolution {
private Long info1;
private Long info2;
private Long info3;
private A targetPojo;
//...
}
Структура таблицы
THE_TARGET_SOLUTION_TABLE
- INFO_1 NUMBER(10)
- INFO_2 NUMBER(10)
- INFO_3 NUMBER(10)
- DISCRIM NUMBER(2)
- TEXT_A NVARCHAR2(200 BYTE)
- NUMBER_A NUMBER(10)
- DATE_A DATE
Главное, что нам нужноиметь в TheTargetSolution targetPojo, который является типом класса A, и этот класс не имеет сопоставления (нам нужно больше информации для сущности, и нет возможности сделать это, используя отношение многие ко многим, в этом случае все данные должны храниться водна таблица) это экземпляр типа, который применяется к дискриминатору.
Возобновление
Когда значение столбца DISCRIM равно 1, targetPojo должен иметь тип One
Когда значение столбца DISCRIM равно 2, targetPojo должентип Two
Когда значение столбца DISCRIM равно 3, targetPojo должен иметь тип Three
Есть предложения?