package com.yeshi.fanli.service.impl.user; import java.io.Serializable; import java.util.List; import javax.annotation.Resource; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.user.PassWordErrorRecordDao; import com.yeshi.fanli.entity.bus.user.PassWordErrorRecord; import com.yeshi.fanli.service.inter.user.PassWordErrorRecordService; @Service public class PassWordErrorRecordServiceImpl implements PassWordErrorRecordService { @Resource public PassWordErrorRecordDao passWordErrorRecordDao; public PassWordErrorRecord getRecord(long uid) { List list = passWordErrorRecordDao.list("from PassWordErrorRecord r where r.userInfo.id = ?", new Serializable[]{uid}); if(list.size() > 0){ return list.get(0); } return new PassWordErrorRecord(); } public int setRecord(final PassWordErrorRecord record) { return (Integer) passWordErrorRecordDao.excute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { session.getTransaction().begin(); try { int count = record.getCount(); record.setCount(++count); session.saveOrUpdate(record); session.flush(); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); return record.getCount()-1; } return record.getCount(); } }); } public void saveOrUpdate(final PassWordErrorRecord record) { passWordErrorRecordDao.excute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { try { session.getTransaction().begin(); session.saveOrUpdate(record); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } return null; } }); } @Transactional public void deleteRecord(final long uid) { passWordErrorRecordDao.excute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query q = session.createQuery("delete from PassWordErrorRecord p where p.userInfo.id = ? "); q.setParameter(0, uid); q.executeUpdate(); return null; } }); } @Override public void deletePasswordErrorRecord() { passWordErrorRecordDao.excute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query q = session.createQuery("DELETE FROM PassWordErrorRecord"); q.executeUpdate(); return null; } }); } }