214 CHAPTER 10 n ADVANCED QUERIES USING CRITERIA (Hosting web)

214 CHAPTER 10 n ADVANCED QUERIES USING CRITERIA CHAPTER 10 n ADVANCED QUERIES USING CRITERIA Using Restrictions with Criteria The Criteria API makes it easy to use restrictions in your queries to selectively retrieve objects; for instance, your application could retrieve only products with a price over $30. You may add these restrictions to a Criteriaobject with the add() method. The add() method takes an org.hibernate.criterion.Criterion object that represents an individual restriction. You can have more than one restriction for a criteria query. Although you could create your own objects implementing the Criterionobject, or extend an existing Criterionobject, we recommend that you use Hibernate s built-in Criterion objects from your application s business logic. For instance, you could create your own factory class that returns instances of Hibernate s Criterionobjects appropriately set up for your application s restrictions. Use the factory methods on the org.hibernate.criterion.Restrictions class to obtain instances of the Criterion objects. To retrieve objects that have a property value that equals your restriction, use the eq() method on Restrictions, as follows: public static SimpleExpression eq(String propertyName, Object value) We would typically nest the eq() method in the add() method on the Criteria object. Here is an example of how this would look if we were searching for products with the name Mouse : Criteria crit = session.createCriteria(Product.class); crit.add(Restrictions.eq(”name”,”Mouse”)); List results = crit.list() Next, we search for products that do not have the name Mouse. For this, we would use the ne() method on the Restrictions class to obtain a not-equal restriction: Criteria crit = session.createCriteria(Product.class); crit.add(Restrictions.ne(”name”,”Mouse”)); List results = crit.list(); nTip You cannot use the not-equal restriction to retrieve records with a NULL value in the database for that property (in SQL, and therefore in Hibernate, NULL represents the absence of data, and so cannot be compared with data). If you need to retrieve objects with NULL properties, you will have to use the isNull() restriction, which we discuss further on in the chapter. You can combine the two with an OR logical expression, which we also discuss later in the chapter. Instead of searching for exact matches, we can also retrieve all objects that have a property matching part of a given pattern. To do this, we need to create an SQL LIKE clause, with either the like() or the ilike() method. The ilike() method is case-insensitive. In either case, we have two different ways to call the method: public static SimpleExpression like(String propertyName, Object value) or
If you are in need for chaep and reliable webhost to host your website, our recommendation is http web server services.

Leave a Reply