Java Reference
In-Depth Information
6.4.2
Implementing HibernateRestaurantRepositoryImpl
HibernateRestaurantRepositoryImpl
is the Hibernate implementation of the
RestaurantRepository
interface. It retrieves restaurants by using a Spring
Hiber-
nateTemplate
to execute an
HQL
query. Listing 6.5 shows part of the source code
of this class.
Listing 6.5
HibernateRestaurantRepositoryImpl
public class HibernateRestaurantRepositoryImpl extends
HibernateDaoSupport implements RestaurantRepository {
public HibernateRestaurantRepositoryImpl(
HibernateTemplate template) {
setHibernateTemplate(template);
}
B
Creates a
HibernateRestaurant
RepositoryImpl
public List findAvailableRestaurants(Address deliveryAddress,
Date deliveryTime) {
String[] paramNames = {"zipCode",
"dayOfWeek",
bbbbbbbbbbbbbbbbbbbbb
bb
"hour",
bbbbbbbbbbbbbb
bb
"minute" };
Object[] paramValues =
makeParameterValues(deliveryAddress,
deliveryTime);
C
Creates array
of parameter values
return getHibernateTemplate()
.findByNamedQueryAndNamedParam(
"findAvailableRestaurants",
paramNames,
paramValues);
}
D
Executes
named query
Object[] makeParameterValues(Address deliveryAddress,
Date deliveryTime) {
Calendar c = Calendar.getInstance();
c.setTime(deliveryTime);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
String zipCode = deliveryAddress.getZip();
Object[] values = new Object[] { zipCode,
new Integer(dayOfWeek), new Integer(hour),
new Integer(minute) };
return values;
}
}
Search WWH ::
Custom Search