Java Reference
In-Depth Information
The
findOrders()
method instantiates a
FindOrdersHibernateCallback
, passing
startingIndex
,
pageSize
, and
searchCriteria
as constructor arguments.
11.5.2
The FindOrdersHibernateCallback class
FindOrdersHibernateCallback
, which is shown in listing 11.3, is a Spring
Hiber-
nateCallback
and has a
doInHibernate()
method that constructs and executes a
criteria query. It builds the restrictions and sort order for query using the proper-
ties of the
OrderSearchCriteria
.
Listing 11.3
FindOrdersHibernateCallback
private final class FindOrdersHibernateCallback implements
HibernateCallback {
private final int startingIndex;
private final int pageSize;
private final OrderSearchCriteria searchCriteria;
private FindOrdersHibernateCallback(int startingIndex,
int pageSize, OrderSearchCriteria searchCriteria) {
super();
this.startingIndex = startingIndex;
this.pageSize = pageSize;
this.searchCriteria = searchCriteria;
}
B
Creates and executes
criteria query
public Object
doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(Order.class);
addCriteria(criteria, searchCriteria);
addSortBy(criteria, searchCriteria);
addRange(criteria);
List result = criteria.list();
return makePagedQueryResult(result);
}
C
Adds
search criteria
public void
addCriteria(Criteria criteria,
OrderSearchCriteria searchCriteria)
throws HibernateException {
if (searchCriteria.isDeliveryTimeSpecified()) {
bb
criteria.add(Restrictions.ge("deliveryTime",
bb
searchCriteria.getDeliveryTime()));
}
if (searchCriteria.isRestaurantSpecified()) {
bb
criteria.createCriteria("restaurant").add(
Search WWH ::
Custom Search