Olá, pessoal!!
Estou implementando utilizando Dao e annotations e stou com uma dúvida ...
Tenho a classe DaoFactory:
public class DaoFactory {
private final Session session;
private Transaction transaction;
public DaoFactory() {
session = HibernateUtil.getSession();
}
public void beginTransaction() {
this.transaction = this.session.beginTransaction();
}
public void commit() {
this.transaction.commit();
this.transaction = null;
}
public boolean hasTransaction() {
return this.transaction != null;
}
public void rollback() {
this.transaction.rollback();
this.transaction = null;
}
public void close() {
this.session.close();
}
public AcessoDao getAcessoDao() {
return new AcessoDao(this.session);
}
}
Tenho a Classe Dao genérica:
public class Dao<T> {
private final Session session;
private final Class classe;
Dao(Session session, Class classe) {
this.session = session;
this.classe = classe;
}
protected Session getSession(){
return session;
}
public void adiciona(T u) {
this.session.save(u);
}
public List<T> listaTudo() {
return this.session.createCriteria(this.classe).list();
}
}
e a classe AcessoDao, que estende a classe Dao para tratar as questões referentes a controle de acesso dos usuarios na aplicação:
public class AcessoDao extends Dao<Usuario> {
AcessoDao(Session session) {
super(session, Usuario.class);
}
public void conectar() {
.....
}
public void desconectar() {
.....
}
public void verificarLog() {
.....
}
public void consulta() {
.....
}
}
A dúvida é a seguinte: Caso eu queira fazer com que a classe AcessoDao seja "genérica" em relação a outras classes, e implementar uma classe ainda mais específica, que estenda AcessoDao, o que eu preciso alterar em AcessoDao? Preciso fazer a alteração na classe DaoFactory também ?
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia: