InheritanceType.JOINED не работает должным образом для конкретного родительского класса - PullRequest
0 голосов
/ 27 сентября 2019

Я работаю над проектом, который имеет иерархию из двух классов (оба конкретных класса): класс A, класс B. И класс B расширяет класс A дополнительными полями.

Я использую @Наследование (Strategy = InheritanceType.JOINED).Это прекрасно работает для извлечения экземпляров дочернего класса (B).Проблема в том, что он не работает для извлечения экземпляров родительского класса, даже простой запрос JPQL, такой как «select obj from A obj», не возвращает ни одного экземпляра.

Устранение неполадок в сгенерированном SQL показывает соединение с дочерним классом, поэтому любая запись, которая существует только как A, не возвращается.Похоже, EclipseLink интерпретирует, что класс A является абстрактным (что не так!), Поэтому соединение с дочерними классами всегда выполняется.

Я должен отметить, что я сам не использовал бы этот дизайн наследования.Простая композиция будет достаточно.Проблема в том, что я не могу изменить это в данный момент, поэтому я хотел бы, чтобы рабочее решение рассматривало этот дизайн на основе наследования.

...