title: JPA: Implementing Model Hierarchy - @MappedSuperclass vs. @Inheritance
body: <p>I am using Play Framework 1.2.4 with <code>PostgreSQL</code> and <code>JPA</code>. I would like to have a Model hierarchy and see that there are some alternatives to doing this.</p>
  
  <p>I have a base class (which is abstract) and two concrete classes extending this base class. I don't want to persist this base class while I want to have concrete classes. In the base class, I have another Model classes as properties, in other words, I have <code>@ManyToOne</code> relationships in my base class. </p>
  
  <p>My question is what is the best way of implementing this? Using <code>@MappedSuperclass</code> or <code>@Inheritance</code> with <code>TABLE_PER_CLASS</code> strategy? I am a bit confused as they seem <em>virtually</em> equivalent.</p>
  
  <p>I also have some concerns about querying and performance issues that I might face in future.</p>