package org.springframework.showcase.carplant.dao; import java.util.List; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate; /** * Traditional implemetation of the CarPartsInventory interface using * the HibernateTemplate API. * * @author Alef Arendsen * @since 2.0.4 */ public class TemplateHibernateCarPartsInventoryImpl implements CarPartsInventory { private HibernateTemplate hibernateTemplate; public void setSessionFactory(SessionFactory sessionFactory) { this.hibernateTemplate = new HibernateTemplate(sessionFactory); } public void addPart(String model, String number, String name) { Part part = new Part(); part.setName(name); part.setPartNo(number); part.setModel(model); hibernateTemplate.saveOrUpdate(part); } @SuppressWarnings("unchecked") public List<Part> getPartsForModel(CarModel carModel) { return (List<Part>)hibernateTemplate.find("from Part where model = ?", new Object[] { carModel.getName() }); } public void updatePartStock(String partNo, int i) { Part part = (Part)hibernateTemplate.load(Part.class, partNo); if (part == null) { throw new PartNotFoundException(); } part.updateStock(i); } }