public interface GenericDAO<T, ID extends Serializable> {
void salvar(T entity);
void apagar(T entity);
T consultarPorId(ID id);
}
public abstract class GenericHibernateDAO<T, ID extends Serializable>
implements GenericDAO<T, ID> {
private Class<T> persistentClass;
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public GenericHibernateDAO() {
this.persistentClass = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
}
public Class<T> getPersistentClass() {
return this.persistentClass;
}
public void salvar(T entity) {
this.sessionFactory.getCurrentSession().save(entity);
}
public void apagar(T entity) {
this.sessionFactory.getCurrentSession().delete(entity);
}
public void update(T entity) {
this.sessionFactory.getCurrentSession().update(entity);
}
public T consultarPorId(ID id) {
T persistentClass = null;
persistentClass = (T) this.sessionFactory.getCurrentSession().get(
this.getPersistentClass(), id);
return persistentClass;
}
}
public class GenericServiceImpl implements GenericService {
private GenericHibernateDAO<T, Serializable> genericDAO; // Isso aqui esta travado....
public void apagar(Object entity) {
// TODO Auto-generated method stub
}
public Object consultarPorId(Serializable id) {
// TODO Auto-generated method stub
return null;
}
public void salvar(Object entity) {
// TODO Auto-generated method stub
}
}
Obrigado...