I have a domain model with a lot of inheritance. Do I have to model my inheritance in TopLink?
No. Inheritance in TopLink only needs to be modeled relationally if you plan to query or write the super classes. Consider the example where class A has a subclass called B. A has two attributes: id and description. On the database, there is both an ID and DESCRIPTION field on B’s table, but A has no table associated with it. All you need to do is map B; you can ignore its superclass A. The fields contained in A can be mapped through mapping B. This allows you to map an object model but ignore certain classes that shouldn’t logically be persisted (e.g. abstract classes, “PersistentObject” superclasses, etc.).