CRUD com Hibernate e JSF

0 respostas
pedro_ha
Greetings everyone! Estou desenvolvendo um CRUD com Hibernate, bem generico, que trabalha com Object banco com o hibernate. Faço isso para nao usar aquele monte de DAOs que me irritam. Vejam o codigo:
@Transactional(readOnly=true)
public class GenericCRUD implements Serializable, CRUDInterface {

    public HibernateTemplate getHibernateTemplate() {
        return hibernateTemplate;
    }

    @Autowired
    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }

    private Session getCurrentSession(){
        return hibernateTemplate.getSessionFactory().openSession();
    }
    
    @Override
    @Transactional
    public List buscarTodos(Class classe){
        criterio = getCurrentSession().createCriteria(classe);
        return criterio.list();
    }

    @Override
    @Transactional
    public Object buscarPorID(Class classe, Serializable id){
        return hibernateTemplate.get(classe, id);
    }

    @Override
    @Transactional
    public void salvarOuAtualizar(Object objeto){
        hibernateTemplate.saveOrUpdate(objeto);
    }

    @Override
    @Transactional
    public void excluir(Object objeto){
        hibernateTemplate.delete(objeto);
    }

    @Override
    @Transactional
    public List getByParametro(Class type, String parametro, String valor){
        criterio = getCurrentSession().createCriteria(type);
        criterio.setMaxResults(10);
        criterio.add(Restrictions.ilike(parametro, valor));
        return criterio.list();
    }

    private HibernateTemplate hibernateTemplate;
    private Criteria criterio;
}

Continuo tendo varios objetos da classe GenericCRUD em cada BackingBean.
Assim:

private CRUDInterface DAOGenerico;

    @Autowired
    public void setDAOGenerico(CRUDInterface DAOGenerico) {
        this.DAOGenerico = DAOGenerico;
    }

    public void cadastrar() {
            DAOGenerico.salvarOuAtualizar(cliente);
    }

A questao eh:

Devo tornar esses metodos estaticos e nao ter repeticoes de objectos e de sessionfactorys e etc, visto que cada session do controller tera um deste objeto, lembrando que eh tudo instanciado pelo Spring como singletons?

Criado 2 de maio de 2012
Respostas 0
Participantes 1