ajfilho
Mostre o código da sua declaração de classe…
Abraços!
wcoutinho
Oi,
Obrigado pela ajuda.
Aqui esta a classe inteira.
package br.com.asd.portal.dao;
import java.util.List;
import org.hibernate.Session;
public class Dao {
private final Session session;
private final Class classe;
Dao(Session session, Class classe) {
this.session = session;
this.classe = classe;
}
public void adiciona(T u) {
this.session.save(u);
}
public void remove(T u) {
this.session.delete(u);
}
public void atualiza(T u) {
this.session.merge(u);
}
public List<T> listaTudo() {
return this.session.createCriteria(T.class).list();
}
public T procura(Long id) {
return (T) session.load(T.class, id);
}
}
Gerson_da_S_Lima
O seu problema está aqui
return this.session.createCriteria(T.class).list();
Você não pode fazer T.class, generics não aceita isso. Você deve utilizar aquele classe que você está pegando como parâmetro:
return this.session.createCriteria(classe).list();
wcoutinho
Pessoal,
valeu pela ajuda.
Gerson,
é isso aí, alterei como voce falou e funcionou direitinho.
Obrigado
Mannes
Já que funcionou, coloque como post resolvido, para organizar e ajudar a outros com a mesma dúvida…
wcoutinho
Aqui está.
A classe que funcionou ficou assim:
package br.com.asd.portal.dao;
import java.util.List;
import org.hibernate.Session;
public class Dao {
private final Session session;
private final Class classe;
Dao(Session session, Class classe) {
this.session = session;
this.classe = classe;
}
public void adiciona(T u) {
this.session.save(u);
}
public void remove(T u) {
this.session.delete(u);
}
public void atualiza(T u) {
this.session.merge(u);
}
public List<T> listaTudo() {
return this.session.createCriteria(classe).list();
}
public T procura(Long id) {
return (T) session.load(classe, id);
}
}