Por exemplo, um select para verificação de usuarios(Login), ele não pode ser implementado na minha classe dao, uma vez que a mesma é generica. Então como eu deveria implementar tal funcionalidade ? Criando uma classe UsuarioDao e extendendo a classe Dao ?
Vc pode sim criar uma classe usuário DAO, herdando de DAOGenérico. Aí vc pode criar um método específico para puxar os dados necessários para a validação.
Não endenti qual a razão pela qual vc não vai usar o DAOGenérico, já que vc pode recuperar os dados do usuário por ela também. De qualquer forma já usei DAOs herdados de DAOGenérico para algumas coisas específicas.
Espero ter ajudado.
flw…
G
guimoz
Não gostaria de usar o DAOGenerico em casos como esse :
public Usuario existeUnico (Usuario u) {
String hql = "select u from Usuario as u where u.login = :login and" +
" u.senha = :senha ";
Query query = getSession().createQuery(hql);
query.setParameter("login", u.getLogin());
query.setParameter("senha", u.getSenha());
return (Usuario) query.uniqueResult();
}
acho que ficaria muito mais interessante usar um dao especifico em casos como esse.
Mas gostaria de ouvir algumas opinioes a respeito…
B
bKn
Se este método estiver no DAO genérico ele vai deixar de ser genérico.
C
clone_zealot
Eu só me pergunto qual a utilidade deste tipo de método… Tipo, só traduzir uma função já resolve o meu problema? =?
G
guimoz
Não consegui entender a pergunta …
Jair_Rillo_Junior
Basicamente, você pode criar, dentro do seu DAO genérico, métodos que recebam HQL, NamedQuery ou até mesmo Criterion.
Assim, na sua camada anterior, você passa o HQL, NamedQuery ou Criteria para verificar o Login
Igual já disseram, se você extender para UsuarioDAO por exemplo, você está perdendo a funcionalidade do DAO Generico. Você deve extender para outro DAO, apenas qdo voce tem uma funcionalidade bemmmmmm específica.
Espero que tenha ficado claro
G
guimoz
Fico sim ! ^^
so não estou conseguindo acessar o link que me passastes, nem mesmo o site do hibernate.
B
bKn
O site é de lua, toda hora tá com problema, mas jajá volta.