Criteria objects
Another way to create a fetch query is using criteria objects. This is more in tune with the object-oriented mindset. However, the real advantage that this brings is that this makes composing dynamic queries easier.
Criteria queries are composed from an object graph, and as new search criteria are added, new objects (Restrictions
, Order
, and so on) are added to the graph. This is especially very useful when you are building a report or search screen in your application, for example, navigating through items in an online store.
In its simplest form, a Criteria
object is created, as follows:
Criteria criteria = session.createCriteria(Person.class); List<Person> persons = criteria.list();
In this case, the Person
entity is configured to fetch the associated entities eagerly, and the criteria API follows this instruction.
You can further modify the Criteria
object, for example, by adding a WHERE
clause:
List<Person> persons = criteria .add(Restrictions.eq("lastname"...