A meta-model for persistent domain has been specified in JPA 2.0. This M2 model currently only expose type metadata and not mapping metadata. OpenJPA provides rich meta-data support both at type level and mapping level. The goal is to maximally leverage these existing facilities with the help of appropriate design patterns to comply with JPA 2.0 specified type system. It is not recommended to create a parallel type system for this purpose.