I am relatively new to Hibernate (4) and ORMs in general, and would like to know which is the easiest or most convenient way to find object(s) by attributes.
class Foo {
private Long id;
private String name;
private Integer age;
private Integer favoriteNumber;
private String catchphrase;
}
Say I have an instance of Foo, the attributes are set arbitrarily, or in other words, I do not know which attributes are set (id might not have been set).
Based on the attributes that are not null, I would like to find any matching object(s) from the database.
Ideally I would want to use a method like this:
session.getCurrentSession().find(foo); which returns a list of Foo.
PS. I do not want to use reflection to accomplish this!
The best approach to your use case is to use a query by example:
UPDATE:
Querying by example doesn’t include the id attribute in the search. I assumed here that you are not interested in a query by id. If you know the id and you are interested by a query by id you need to do a separate: