![]() |
| DAOBagTeste NFL |
Next version will be fully function i hope soul. package org.nanotek.dao; |
| import java.util.List; |
| import org.hibernate.Session; |
| import org.hibernate.SessionFactory; |
| import org.nanotek.util.Base; |
| import org.springframework.beans.factory.annotation.Autowired; |
| import org.springframework.transaction.annotation.Propagation; |
| import org.springframework.transaction.annotation.Transactional; |
| public abstract class BaseDAO { |
| protected Class<Base<?>> clazz; |
| @Autowired |
| private SessionFactory sessionFactory; |
| public BaseDAO() { |
| } |
| public BaseDAO(Class<Base<?>> clazz) { |
| this.clazz = clazz; |
| } |
| @Transactional (readOnly = true, propagation = Propagation.REQUIRED) |
| public List<Base<?>> loadAll() { |
| Session session = sessionFactory.getCurrentSession(); |
| return session.createQuery("from " + getClazz().getName()).list(); |
| } |
| @Transactional (readOnly = false, propagation = Propagation.REQUIRED) |
| public void persist(Base<?> object) { |
| Session session = sessionFactory.getCurrentSession(); |
| session.persist(object); |
| } |
| @Transactional (readOnly = false, propagation = Propagation.REQUIRED) |
| public void update(Base<?> object) { |
| Session session = sessionFactory.getCurrentSession(); |
| session.saveOrUpdate(object); |
| } |
| @Transactional (readOnly = false, propagation = Propagation.REQUIRED) |
| public void delete(Base<?> object) { |
| Session session = sessionFactory.getCurrentSession(); |
| session.delete(object); |
| } |
| public Class<Base<?>> getClazz() { |
| return clazz; |
| } |
| public void setClazz(Class<Base<?>> clazz) { |
| this.clazz = clazz; |
| } |
| @Transactional |
| public abstract List<Base<?>> listRecords(Integer firstResult, Integer maxResults); |
| public SessionFactory getSessionFactory() { |
| return sessionFactory; |
| } |
| public void setSessionFactory(SessionFactory sessionFactory) { |
| this.sessionFactory = sessionFactory; |
| } |
| } |
