I have a class that uses Hibernate HQL queries. I would like to change these into Hibernate Criteria queries. However, Hibernate Criteria is a lot harder for me to understand than HQL, even with tutorials. Could someone show me how one of the queries would look like using Hibernate Criteria/Filters?
Configuration configuration = new Configuration();
configuration.configure().setProperty("hibernate.show_sql", "false");
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(
configuration.getProperties()).buildServiceRegistry();
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(serviceRegistry);
Session session =sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from TABLENAME WHERE IDObject1= :idObjectA" +
"AND IDObject2= :idObjectB AND IDSettingOption = :idSettingOption");
query.setParameter("idObjectA", idObjectB);
query.setParameter("idObjectB", idObjectB);
query.setParameter("idSettingOption", idSettingOption);
List results = query.list();
Thanks in advance!
Criteria criteria = session.createCriteria( TABLENAME.class );
criteria.add( Restrictions.eq( "IDObject1" , idObjectB) );
criteria.add( Restrictions.eq( "IDObject2" , idObjectB) );
criteria.add( Restrictions.eq( "IDSettingOption" ,idSettingOption) );
List results = criteria.list();
Here you can read about Criteria API, it has a lot of examples:
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html
List results = session.createCriteria(Entity.class)
.add(Restrictions.eq("IDObject1", idObjectA))
.add(Restrictions.eq("IDObject2", idObjectB))
.add(Restrictions.eq("idSettingOption", idSettingOption))
.list();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.