Created
January 5, 2018 18:54
-
-
Save mahenrique94/f2065d257729ac500ffd59ff2cc6348a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class JPAGenericDao<T> implements GenericDao<T> { | |
private EntityManager em; | |
@Inject | |
public JPAGenericDao(EntityManager em) { | |
// TODO Auto-generated constructor stub | |
this.em = em; | |
} | |
@Deprecated | |
public JPAGenericDao() { | |
// TODO Auto-generated constructor stub | |
} | |
private T obj; | |
@Override | |
public void delete(T obj) { | |
// TODO Auto-generated method stub | |
this.em.remove(this.em.getReference(obj.getClass(), this.em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(obj))); | |
} | |
@Override | |
public T edit(T obj) { | |
// TODO Auto-generated method stub | |
return (T) this.em.find(obj.getClass(), this.em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(obj)); | |
} | |
@Override | |
public List<T> executeNamedQuery(String namedQuery, Class clazz, Object[] parameters) { | |
// TODO Auto-generated method stub | |
TypedQuery query = this.em.createNamedQuery(namedQuery, clazz); | |
addParameters(query, parameters); | |
return query.getResultList(); | |
} | |
@Override | |
public void executeProcedure(String procedure, Object[] parameters, Class[] clazzs) { | |
// TODO Auto-generated method stub | |
StoredProcedureQuery query = this.em.createStoredProcedureQuery(procedure); | |
for (int i = 0; i < clazzs.length; i++) { | |
query.registerStoredProcedureParameter(i, clazzs[i], ParameterMode.IN); | |
} | |
addParameters(query, parameters); | |
query.execute(); | |
} | |
@Override | |
public T find(Class clazz, List<ParametrosWeb> parametrosWeb) { | |
// TODO Auto-generated method stub | |
try { | |
return (T) this.em.createQuery(new ParametrosWebBuilder().createQuery(clazz, parametrosWeb)).setFirstResult(0).setMaxResults(1).getSingleResult(); | |
} catch (Exception e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
return null; | |
} | |
} | |
@Override | |
public List<T> findAll(Class clazz, List<ParametrosWeb> parametrosWeb) { | |
// TODO Auto-generated method stub | |
int max = parametrosWeb != null && parametrosWeb.get(0).getLimit() != null ? parametrosWeb.get(0).getLimit() : 100; | |
try { | |
return this.em.createQuery(new ParametrosWebBuilder().createQuery(clazz, parametrosWeb)).setFirstResult(0).setMaxResults(max).getResultList(); | |
} catch (Exception e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
return null; | |
} | |
} | |
@Override |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment