How do I set the fetch mode for Criteria association?

Category: org.hibernate, viewed: 6320 time(s).

To set the fetching mode for association we can call the Criteria's setFetchMode() method. We can user the FetchMode.SELECT or FetchMode.JOIN.

package org.kodejava.example.hibernate.criteria;

import org.hibernate.*;
import org.hibernate.criterion.Restrictions;
import org.hibernate.cfg.AnnotationConfiguration;
import org.kodejava.example.hibernate.model.Recording;

import java.util.List;

public class FetchModeDemo {
    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 {
            Criteria criteria = session.createCriteria(Recording.class)
                    .setFetchMode("artist", FetchMode.SELECT)
                    .setFetchMode("label", FetchMode.SELECT)
                    .add(Restrictions.eq("title", "Please Please Me"));

            List<Recording> recordings = criteria.list();
            for (Recording recording : recordings) {
                System.out.println("Recording  = " + recording.getTitle());
                System.out.println("Artist     = " + recording.getArtist().getName());
            }

        } finally {
            session.close();
        }
    }
}
Click here to lend your support to: Kode Java Org and make a donation at www.pledgie.com !

 

Uncensored Newsgroups
Download Hundreds of Complimentary Industry Resources

Get hundreds of popular Industry magazines, white papers, webinars, podcasts, and more; all available at no cost to you. With more than 600 complimentary offers, you'll find plenty of titles to suit your professional interests and needs. Click Here and Sign up today!

Java Training

Sponsored Links

Our Friends

Statistics

Locations of visitors to this page
visitor stats