@picklesdog70 escreveu:
Amigos....
Tenho um GenericDao que funciona bem..... mas gostaria de melhorá-lo.....
public abstract class GenericDao< T > implements IDao< T > {
@PersistenceContext protected EntityManager em; protected Class<T> clazz; protected CriteriaBuilder builder; protected CriteriaQuery<T> query; protected Root<T> root; public GenericDao(Class<T> clazz){ this.clazz = clazz; } ....
Gostaria de injetar os atributos
protected CriteriaBuilder builder; protected CriteriaQuery<T> query; protected Root<T> root;
Por que se tento iniciá-los no contrutor, tenho erro. Acredito por que o JPA ou Spring ainda não injetou o EntityManager através do @PersistenceContext.
Como gambiarra tenho um método que chamo a cada outro método do Dao:
protected void criteriaObjects() { this.builder = em.getCriteriaBuilder(); this.query = builder.createQuery(clazz); this.root = query.from(clazz); } @Override public T findById(int id) { criteriaObjects(); ....
Seria possível fazer isso?
Mensagens: 3
Participantes: 2