package rewards.internal.restaurant; import java.util.List; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; /** * Finds restaurants using the Hibernate API. */ @Repository public class HibernateRestaurantRepository implements RestaurantRepository { private HibernateTemplate hibernateTemplate; /** * Creates an new hibernate-based restaurant repository. * @param sessionFactory the Hibernate session factory required to obtain sessions */ @Autowired public HibernateRestaurantRepository(SessionFactory sessionFactory) { this.hibernateTemplate = new HibernateTemplate(sessionFactory); } @SuppressWarnings("unchecked") public Restaurant findByMerchantNumber(String merchantNumber) { List<Restaurant> restaurants = hibernateTemplate.find("from Restaurant r where r.number = ?", merchantNumber); if(restaurants.isEmpty()) return null; return restaurants.get(0); } }