Galera, bom dia
To com uma dúvida e gostaria que me ajudassem.
Como o meu Dao é responsável por manipular os dados no banco, ele saberá se a manipulação deu certo ou não… pois bem, eu posso deixar pra ele a responsabilidade de informar ao usuário se deu sucesso ou falha, ou isso não seria responsabilidade dele?
Tenho comigo de que esse Result aí tá errado, dá impressão de que o Controller devia mostrar a mensagem, mas dessa forma eu não precisaria fazer a mesma coisa em todos os Controllers, eu apenas chamaria o gravar(…, …), outra coisa, como eu to utilizando i18n eu teria que passar também o localization para o gravar do Dao para informar o status no idioma correto.
Tenho na minha classe Dao hoje o seguinte:
public boolean gravar(Object object, Result result) {
try {
Transaction tx = session.beginTransaction();
session.update(object);
tx.commit();
result.include("status", "Sucesso");
return true;
} catch (StaleObjectStateException staleObjectStateException) {
this.session.evict(object);
this.session.getTransaction().rollback();
result.include("status", "Falha, o registro já foi manipulado anteriormente");
return false;
} catch (HibernateException hibernateException) {
this.session.evict(object);
this.session.getTransaction().rollback();
result.include("status", "Falha");
return false;
} catch (Exception exception) {
this.session.evict(object);
this.session.getTransaction().rollback();
result.include("status", "Falha");
return false;
}
}
Está correta a maneira como estou fazendo??
Obrigado.