The official documentation from Sun Microsystems, and the CMP 2.x specification don’t implicitly allow and provide for inheritance. In fact, most of the documentation I’ve come across says it’s flat out not possible. Lies. Lies I tell you. With a basic understanding of how the CMP container maps object fields and relations to tables, some minor sacrifices of normalization in the database layer, a few abstract classes, added interfaces, and some patience it’s entirely possible to provide basic inheritance in CMP 2.x. The description makes it sound worse than it is, and from the testing I’ve done at work over the last few months, it’s definately worth it. Afterall, what good is CMP if you can’t use basic inheritance in your entities? The following banter is an example and overview of a simple object heirarchy that becomes fairly complex within the scope of implementing the CMP inheritance. Although a bit of extra work, it makes the business logic tier a lot eaiser to work with. This design has been working flawlessly in testing for several months now, and is being primed to go into production as soon as we get all the software in place.