How do I create a Criteria object?

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().
        catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);

    public static Session getSession() throws HibernateException {
        return sessionFactory.openSession();

    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 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());
        } finally {

Wayan Saryada

Founder at Kode Java Org
I am a programmer, a runner, a recreational diver, currently live in the island of Bali, Indonesia. Mostly programming in Java, Spring Framework, Hibernate / JPA. You can support my works by donating here. Thank you 🥳

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.