package org.multibit.mbm.db.dao.hibernate; import com.google.common.base.Optional; import org.multibit.mbm.db.dao.CustomerDao; import org.multibit.mbm.core.model.Customer; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; import java.util.List; @Repository("hibernateCustomerDao") public class HibernateCustomerDao extends BaseHibernateDao<Customer> implements CustomerDao { @Override public Optional<Customer> getCustomerByOpenId(String openId) { List customers = hibernateTemplate.find("from Customer c where c.openId = ?", openId); return first(customers); } @Override public Customer saveOrUpdate(Customer customer) { hibernateTemplate.saveOrUpdate(customer); return customer; } /** * Force an immediate in-transaction flush (normally only used in test code) */ public void flush() { hibernateTemplate.flush(); } @Override protected Customer initialized(Customer entity) { return entity; } public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } }