Я ищу способ в EclipseLink иметь два @DiscriminatorColumns на одном и том же объекте
Моя таблица БД PostreSQL:
Dictionary
{
id,
object_type,
attribute_type,
translation
}
И классы:
@Entity
@Table(name = "dictionary")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="object_type",
discriminatorType=DiscriminatorType.INTEGER)
public class DictionaryRow implements Serializable;
@Entity
@DiscriminatorValue("0")
@DiscriminatorColumn(name="info_type",
discriminatorType=DiscriminatorType.INTEGER)
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class DictionaryAttribute extends DictionaryRow;
@Entity
@DiscriminatorValue("1")
public class DictionaryAttributeName extends DictionaryAttribute;
Я пытаюсь добиться того, чтобы при вызове DictionaryAttributeName он преобразовывался в SQL, например:
select * from DICTIONARY where info_type = 1 and object_type = 0
Но на самом деле, он берет DiscriminatorColumn из класса DictionaryRow и DiscriminatorValue из DictionaryAttributeName, что приводит к совершенно неправильному SQL:
select * from DICTIONARY where object_type = 1
Есть ли решение для этой проблемы?
Спасибо