Dúvida utilizando GenericDAO

Não estou conseguindo utilizar corretamente o GenericDAO, em uma das minhas tentativas fiz como está logo abaixo:

@Resource
public MembrosController(GenericDao<Membro> dao, Validator validator, Result result){
    this.dao = dao;
    this.result = result;
    this.validator = validator;
}
@Component
public class GenericDao<T> {
	
    protected final Session session;
    
    private final Class classe;  
  
    public GenericDao(Session session, Class classe) {  
        this.session = session;  
        this.classe = classe;  
    }
    
    @SuppressWarnings("unchecked")
	public T procuraPorId(Long id){
    	return (T) this.session.load(this.classe, id);
    }

Vou fazer uma campanha: por favor, não use generic daos. Entenda aqui o quanto uma dao assim é ruim: http://blog.caelum.com.br/2006/10/29/brincando-com-generics-o-bizarregenericdao/

Mas se mesmo assim você quiser usar… você precisa nos dizer o que está acontecendo. Há algum erro? O que está acontecendo? Há algum stacktrace? Quais as mensagens?

Há algum tempo o vraptor não suportava generic-types. Mas acho que o Lucas já resolveu isso. Qual versão do Vraptor você está usando?

o Spring não suporta muito bem generic-types, e por consequencia o vraptor tb não…

de qqer forma, o construtor do GenericDao recebe uma Class, e o vraptor/spring não conseguem decidir qual é essa class…

crie a classe:

@Component
public class MembroDao extends GenericDao<Membro> {
    //delega o construtor, mas só receba Session, e não Class...
}

que vai funcionar, de preferencia referencie ela, e não o genericDao