GenericDAO

Pessoal,

Estou tentando fazer uma classe generica para meus DAOS, mas na hora de implementar dá erro, alguem pode me ajudar:

Minha classe generica ficou assim(sem erros):

GenericDAO.java

[code]package br.com.catalogo.dao;

import java.util.List;
import org.hibernate.Session;

public class GenericDAO {

private Class classePersistencia;
protected Session sessao;

public GenericDAO(Session sessao, Class classePersistencia) {
    this.sessao = sessao;
    this.classePersistencia = classePersistencia;
}

public void Salvar(T t) {
    sessao.save(t);
}

public void Apagar(T t) {
sessao.delete(t);
}

public void Atualizar(T t) {
    sessao.merge(t);
}

@SuppressWarnings("unchecked")
public T Carregar(int id) {
    return (T) sessao.load(classePersistencia, id);
}

@SuppressWarnings("unchecked")
public List Listar() {
	return sessao.createCriteria(classePersistencia).list();
}

}
[/code]

Implementando:

UsuarioDAO.java

[code]package br.com.catalogo.dao;

import br.com.catalogo.modelo.Usuario;

public class UsuarioDAO extends GenericDAO {

}
[/code]

Nem continuei a fazer minha classe UsuarioDAO pois ja esta dando erro na declaração da mesma, o netbeans da erro na primeira linha, dizendo que o simbolonao foi achado.
O que estou fazendo de errado na usuarioDAO?

Qual exatamente é a msg de erro?

De qq forma, olhe isso: http://blog.caelum.com.br/2006/10/29/brincando-com-generics-o-bizarregenericdao/

hmm… coloque ela como @Resource

Na hora que você tenta fazer a herança use Usuario.class em vez de somente Usuario

Coloquei @Resource, mas não adiantou
Coloquei tambem Usuario.class, ao inves de apenas Usuario, nada também.

O erro é esse:

Cannot find symbol.
symbol: constructor GenericDAO()
location: class br.com.catalogo.dao.GenericDAO<br.com.catalogo.Usuario>

Botasse @Resource nos 2???
Tenta @Components …num lembro mais

¬¬
Coloque sua outra classe… que chama o Dao
constructor DenericDAO() <Deneric ???

Colocar Resource tanto na GenericDao quanto na clase Usuario, é isso? Qual import que dou: javax.anotation, org.apache.taglibs ou sun.security.util?

javax

Funcionou.

Não entendi porque o netbeans estava deixando tudo grifado de vermelho.
Ficou assim:

[code]package br.com.catalogo.dao;

import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Session;

@Resource
public class GenericDAO {

private Class classePersistencia;
protected Session sessao;

public GenericDAO(Session sessao, Class classePersistencia) {
    this.sessao = sessao;
    this.classePersistencia = classePersistencia;
}


}
[/code]

UsuarioDAO

[code]package br.com.catalogo.dao;

import br.com.catalogo.modelo.Usuario;
import org.hibernate.Session;
import javax.annotation.Resource;

@Resource
public class UsuarioDAO extends GenericDAO {

public UsuarioDAO(Session sessao, Class<?> classe) {
    super(sessao, classe);

}
...

}
[/code]

Muito obrigado pelas dicas e pela ajuda, se tiverem alguma coisa a acresectar, agradeço.

Abraços

[quote=Scoobydoo] Botasse @Resource nos 2???
Tenta @Components …num lembro mais

¬¬
Coloque sua outra classe… que chama o Dao

constructor DenericDAO() <Deneric ???[/quote]

Parai, achei que você não tinha implementado o construtor, mas vc implementou .
Mas tem o seguinte, o erro de digitação esta no código ou só na hora de gititar no Guj? Pq a msg de erro refere-se a uma classe DenericDAO e não GenericDAO como deveria.

Não tinha visto, foi erro de digitação na hora de postar a resposta mesmo, é Generic mesmo.