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