本示例向您展示如何创建HibernateCriteria类的实例。要创建一个Criteria我们调用Session对象的工厂方法并传递持久性类作为参数。要执行Criteria查询,我们只需调用list()方法。
package org.nhooo.example.hibernate.criteria; import org.hibernate.SessionFactory; import org.hibernate.Session; import org.hibernate.HibernateException; import org.hibernate.Criteria; import org.hibernate.cfg.Configuration; import org.nhooo.example.hibernate.model.Track; import java.util.List; public class CreateCriteriaDemo { public static Session getSession() throws HibernateException { String cfg = "hibernate.cfg.xml"; SessionFactory sessionFactory = new Configuration().configure(cfg) .buildSessionFactory(); return sessionFactory.openSession(); } @SuppressWarnings("unchecked") public static void main(String[] args) { try (Session session = getSession()) { // 创建一个新的条件来查询曲目的集合。 // 要创建Criteria的实例,我们调用createCriteria() // Session对象的工厂方法。 Criteria criteria = session.createCriteria(Track.class); // 调用list()方法以检索Tracks的集合 // 从数据库中。 List<Track> tracks = criteria.list(); for (Track t : tracks) { System.out.println("Title = " + t.getTitle()); System.out.println("Artist = " + t.getArtist().getName()); System.out.println("Genre = " + t.getGenre().getName()); System.out.println("Record = " + t.getRecord().getTitle()); System.out.println("Label = " + t.getRecord().getLabel().getName()); System.out.println("-----------------------------------"); } } } }