Creating a
criteria:
session.createCriteria(Cat.class)
Criterion->singular
Criteria->Plural
session.createCriteria(className).add(Restriction)
Criterion : Restriction
: Property
: Expression(Deprecated)
:like
:or
Restriction :eq
:between
:isNull
:disjunction
:sqlRestriction------------>specify SQL Directly
Property.forName("propName"):returns you the matching Property instance.
what is
difference b/w below codes?
List cats =
session.createCriteria(Cat.class)
.add(
Restrictions.like("name", "F%") .list();
and
List cats =
session.createCriteria(Cat.class)
.add(
Property.forName("name").like("F%") ) .list();
no difference
between the first two code snippets.
You should use
Property.forName("propName") when you need to use that property
multiple times in Criteria or Query.
It is
equivalent to using direct no. (e.g. 12) or using variable assigned to the no.
(e.g. int x = 12) and use the variable every time you need to use the no.
ordering
order : asc
: desc
List cats = session.createCriteria(Cat.class).addOrder(Order.asc("name").list()
Association
1) inner join:
List cats = sess.createCriteria(Cat.class).createCriteria("kittens").list();
in above ex. we are crating 2 criteria objects.
creatAlias:Join an
association, assigning an alias to the joined association.
List cats = sess.createCriteria(Cat.class).creatAlias("kittens","kt")
.add(Restriction.like("kt.name","F%")).list();
.add(Restriction.like("kt.name","F%")).list();
No comments:
Post a Comment