How do I create a Criteria object?
Category: org.hibernate, viewed: 2090 time(s).
This example show you how to create an instance of Hibernate Criteria class. To create a Criteria we call the factory method of the Session object and pass the persistence class as parameter. To execute the Criteria query we simply call the list() method.
package org.kodejava.example.hibernate.criteria;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.HibernateException;
import org.hibernate.Criteria;
import org.hibernate.cfg.AnnotationConfiguration;
import org.kodejava.example.hibernate.model.Track;
import java.util.List;
public class CreateCriteriaDemo {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().
configure("hibernate.cfg.xml").
buildSessionFactory();
}
catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
public static Session getSession() throws HibernateException {
return sessionFactory.openSession();
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
final Session session = getSession();
try {
//
// Create a new Criteria to query for a collection of Tracks. To create
// an instance of Criteria we call a createCriteria() factory method of
// the Session object.
//
Criteria criteria = session.createCriteria(Track.class);
//
// Call the list() method to retrieve a collections of Tracks from the
// database.
//
List<Track> tracks = criteria.list();
for (Track track : tracks) {
System.out.println("Title = " + track.getTitle());
System.out.println("Artist = " + track.getArtist().getName());
System.out.println("Genre = " + track.getGenre().getName());
System.out.println("Recording = " + track.getRecording().getTitle());
System.out.println("Label = " + track.getRecording().getLabel().getName());
System.out.println("--------------------------------------------------");
}
} finally {
session.close();
}
}
}
More examples on org.hibernate