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:
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; } } 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?