Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package teste.cdihibernate;
- import java.util.List;
- import javax.persistence.EntityManager;
- public class JpaDAO<T> implements DAO<T>
- {
- private EntityManager em;
- private final Class<T> classe;
- public JpaDAO(Class<T> classe, EntityManager em)
- {
- this.classe = classe;
- this.em = em;
- }
- @Override
- public void save(T entity)
- {
- em.persist(entity);
- }
- @Override
- public void update(T entity)
- {
- }
- @Override
- public void remove(T entity)
- {
- em.remove(entity);
- }
- @Override
- public T getById(Class<T> classe, Long pk)
- {
- return em.find(classe, pk);
- }
- @Override
- public List<T> getAll(Class<T> classe)
- {
- List<T> resultList = (List<T>) em.createQuery("select e from " + classe.getSimpleName() + " e").getResultList();
- return resultList;
- }
- @Override
- public T getByRestriction(Class<T> classe, String attribute, String filter)
- {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
- }
- public class DAOFactory
- {
- @Inject private EntityManager em;
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Produces
- @Dependent
- public JpaDAO createJpaDAO(InjectionPoint point) throws ClassNotFoundException
- {
- ParameterizedType type = (ParameterizedType) point.getType();
- Class classe = (Class) type.getActualTypeArguments()[0];
- return new JpaDAO(classe, em);
- }
- }
- @Inject private JpaDAO<Veiculo> dao;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement