Enforced class hierarchies are not very adaptable. A simple approach would expect records, a mapping function and the findOne, findList, findSet plumbing. There should not be a need to enforce a class hierarchy framework upon the integrating code.
Somewhat counter intuitively, type hierarchies cause leaky abstraction layers.
Somewhat counter intuitively, type hierarchies cause leaky abstraction layers.