Good question. Allowing inheritance in object modeling has been our goal from the very beginning because inheritance promotes the reuse of the functionality of existing components and makes the resulting apps more modular. You don't have to compromise on your object model while using JDXA.
JDXA ORM provides flexible support for persisting domain model objects involved in an inheritance class hierarchy. For example, JDXA does not require you to have your model classes extend any base class of the ORM framework. So you can easily define your classes in any inheritance structure you want. Mapping specification is simple and declarative. Also, a JDXA query returns all qualifying objects of a class hierarchy in a polymorphic fashion. Furthermore, JDXA provides a delete API to delete all the qualifying objects in a class hierarchy.
Comments
JDXA ORM provides flexible support for persisting domain model objects involved in an inheritance class hierarchy. For example, JDXA does not require you to have your model classes extend any base class of the ORM framework. So you can easily define your classes in any inheritance structure you want. Mapping specification is simple and declarative. Also, a JDXA query returns all qualifying objects of a class hierarchy in a polymorphic fashion. Furthermore, JDXA provides a delete API to delete all the qualifying objects in a class hierarchy.
Please check this link for more details on this subject: http://www.softwaretree.com/blog/2016/06/inheritance-support-in-jdxa-orm/