Hibernate
Может ли entity-класс наследоваться от не entity-классов (non-entity classes)?
Да, в JPA и Hibernate сущность (Entity) может наследоваться от несущностных классов (non-entity classes). Этот подход называется "наследование смешанных классов" или "таблица с одной таблицей на иерархию классов".
При использовании такого наследования, суперкласс (non-entity class) и его подклассы (включая entity-классы) будут отображаться в одной таблице базы данных. Общие поля суперкласса и уникальные поля подклассов будут сохранены в одной таблице.
Для реализации наследования смешанных классов в JPA/Hibernate можно использовать аннотацию `@Inheritance` на суперклассе и указать стратегию наследования, например, `@Inheritance(strategy = InheritanceType.SINGLE_TABLE)` .
Важно отметить, что при таком наследовании все классы в иерархии должны быть доступными для Hibernate, чтобы он мог правильно отобразить и сохранить данные в базе данных.