title: Hibernate polymorphic query
body: <p>I have two classes, Person and Company, derived from another class Contact.  They are represented as polymorphically in two tables (Person and Company).  The simplified classes look like this:</p>
  
  <pre><code>public abstract class Contact {
  
    Integer id;
  
    public abstract String getDisplayName();
  
  }
  
  public class Person extends Contact {
  
    String firstName;
    String lastName;
  
    public String getDisplayName() {
      return firstName + " " + lastName;
    }
  
  }
  
  public class Company extends Contact {
  
    String name;
  
    public String getDisplayName() {
      return name;
    }
  
  }
  </code></pre>
  
  <p>The problem is that I need to make a query finding all contacts with displayName containing a certain string.  I can't make the query using displayName because it is not part of either table.  Any ideas on how to do this query?</p>