Procurei pelo google sobre esse assunto, mas não consegui entender muito bem o conceito, bem olhei documentação oficial do hibernate, blog do urubatan, blog da caelum,...
Enfim, criei uma interface com os métodos que eu uso normalmente:
public interface GenericDAO<T, ID extends Serializable> {
String salvar();
String editar();
String excluir();
T getObjeto(); //pega objeto para editar ou excluir
List<T> listaPorNome();
List<T> listaTodos();
}
Agora no dao, tenho bastante dúvida de como implementar esses métodos, por exemplo, o método save que tem no exemplo do blog do urubatan:
public T save(final T object) {
try {
final Session s = getSession(false);
s.save(object);
s.flush();
return object;
} catch (final HibernateException ex) {
TOBaseHibernateDao.logger.error(ex);
throw convertHibernateAccessException(ex);
}
}
1)Por que essa linha? final Session s = getSession(false); //pq false?
E por que eu retorno o objeto, se ele já foi salvo?Eu vou retornar ele null?
E esse método que tem na documentação do hibernate:
@SuppressWarnings("unchecked")
protected List<T> findByCriteria(Criterion... criterion) {
Criteria crit = getSession().createCriteria(getPersistentClass());
for (Criterion c : criterion) {
crit.add(c);
}
return crit.list();
}
2)O que ele faz?Ele busca todos resultados de um objeto?
3)Por exemplo, no meu CargoBean tenho um método que pega o cargo para editar ou excluir(uso jsf):
public Cargo getCargoParaEditarExcluir() {
Cargo cargo = (Cargo) model.getRowData();
return cargo;
}
3)No dao eu troco onde tem Cargo por Generic(T)? Ou tenho que fazer mais alguma coisa?
Creio que sejam dicas básicas, quem puder me ajudar agradeço :wink:
