Pessoal,
Estava tentando fazer um DAO Genérico usando Hibernate com mais ou menos o seguinte código:
[code]public abstract class GenericDAO {
[...]
public List<E> buscarTodos() {
List<E> result = null;
Criteria criteria = session.createCriteria(E.class);
result = criteria.list();
return result;
}
}[/code]
O problema é que não consigo criar um objeto Classe a partir do token da Classe, impedindo a criação do Criteria. Alguem tem alguma solução que não a colocação de um parametro Class na chamada??
não tive como fzr isto tb, estão criei um construtor q recebe esta classe e passa para a super asssim:
public JPABaseDAO(final Class objectClass, final String pun) {
this.objectClass = objectClass;
}
public T get(final PK pk) throws DAOException {
return (T) getEntityManager().find(this.objectClass, pk);
}
mais acho uma boa vc migrar de hibernate pra JPA, assim vc não tem mais q ficar fazendo esses criterias.
Achei a solução mas esqueci de postar aqui…
clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
Mas isso só funciona se a sua classe extender o genérico. Para tratar genéricos criados dinamicamente, como normalmente fazemos com ArrayList ainda estou pesquisando.