org.hibernate.criterion
Class Example

java.lang.Object
  extended by org.hibernate.criterion.Example
All Implemented Interfaces:
Serializable, Criterion

public class Example
extends Object
implements Criterion

Support for query by example.

 List results = session.createCriteria(Parent.class)
     .add( Example.create(parent).ignoreCase() )
     .createCriteria("child")
         .add( Example.create( parent.getChild() ) )
     .list();
 
"Examples" may be mixed and matched with "Expressions" in the same Criteria.

Author:
Gavin King
See Also:
Criteria, Serialized Form

Nested Class Summary
static interface Example.PropertySelector
          A strategy for choosing property values for inclusion in the query criteria
 
Constructor Summary
protected Example(Object entity, Example.PropertySelector selector)
           
 
Method Summary
protected  void addComponentTypedValues(String path, Object component, AbstractComponentType type, List list, Criteria criteria, CriteriaQuery criteriaQuery)
           
protected  void addPropertyTypedValue(Object value, Type type, List list)
           
protected  void appendComponentCondition(String path, Object component, AbstractComponentType type, Criteria criteria, CriteriaQuery criteriaQuery, StringBuffer buf)
           
protected  void appendPropertyCondition(String propertyName, Object propertyValue, Criteria criteria, CriteriaQuery cq, StringBuffer buf)
           
static Example create(Object entity)
          Create a new instance, which includes all non-null properties by default
 Example enableLike()
          Use the "like" operator for all string-valued properties
 Example enableLike(MatchMode matchMode)
          Use the "like" operator for all string-valued properties
 Example excludeNone()
          Don't exclude null or zero-valued properties
 Example excludeProperty(String name)
          Exclude a particular named property
 Example excludeZeroes()
          Exclude zero-valued properties
 TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery)
          Return typed values for all parameters in the rendered SQL fragment
 Example ignoreCase()
          Ignore case for all string-valued properties
 Example setEscapeCharacter(Character escapeCharacter)
          Set escape character for "like" clause
 Example setPropertySelector(Example.PropertySelector selector)
          Set the property selector
 String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
          Render the SQL fragment
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Example

protected Example(Object entity,
                  Example.PropertySelector selector)
Method Detail

setEscapeCharacter

public Example setEscapeCharacter(Character escapeCharacter)
Set escape character for "like" clause


setPropertySelector

public Example setPropertySelector(Example.PropertySelector selector)
Set the property selector


excludeZeroes

public Example excludeZeroes()
Exclude zero-valued properties


excludeNone

public Example excludeNone()
Don't exclude null or zero-valued properties


enableLike

public Example enableLike(MatchMode matchMode)
Use the "like" operator for all string-valued properties


enableLike

public Example enableLike()
Use the "like" operator for all string-valued properties


ignoreCase

public Example ignoreCase()
Ignore case for all string-valued properties


excludeProperty

public Example excludeProperty(String name)
Exclude a particular named property


create

public static Example create(Object entity)
Create a new instance, which includes all non-null properties by default

Parameters:
entity -
Returns:
a new instance of Example

toString

public String toString()
Overrides:
toString in class Object

toSqlString

public String toSqlString(Criteria criteria,
                          CriteriaQuery criteriaQuery)
                   throws HibernateException
Description copied from interface: Criterion
Render the SQL fragment

Specified by:
toSqlString in interface Criterion
Returns:
String
Throws:
HibernateException

getTypedValues

public TypedValue[] getTypedValues(Criteria criteria,
                                   CriteriaQuery criteriaQuery)
                            throws HibernateException
Description copied from interface: Criterion
Return typed values for all parameters in the rendered SQL fragment

Specified by:
getTypedValues in interface Criterion
Parameters:
criteria - TODO
Returns:
TypedValue[]
Throws:
HibernateException

addPropertyTypedValue

protected void addPropertyTypedValue(Object value,
                                     Type type,
                                     List list)

addComponentTypedValues

protected void addComponentTypedValues(String path,
                                       Object component,
                                       AbstractComponentType type,
                                       List list,
                                       Criteria criteria,
                                       CriteriaQuery criteriaQuery)
                                throws HibernateException
Throws:
HibernateException

appendPropertyCondition

protected void appendPropertyCondition(String propertyName,
                                       Object propertyValue,
                                       Criteria criteria,
                                       CriteriaQuery cq,
                                       StringBuffer buf)
                                throws HibernateException
Throws:
HibernateException

appendComponentCondition

protected void appendComponentCondition(String path,
                                        Object component,
                                        AbstractComponentType type,
                                        Criteria criteria,
                                        CriteriaQuery criteriaQuery,
                                        StringBuffer buf)
                                 throws HibernateException
Throws:
HibernateException