Skip to content

Instantly share code, notes, and snippets.

@mahenrique94
Created January 5, 2018 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mahenrique94/f2065d257729ac500ffd59ff2cc6348a to your computer and use it in GitHub Desktop.
Save mahenrique94/f2065d257729ac500ffd59ff2cc6348a to your computer and use it in GitHub Desktop.
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