Entidades no SessionBean

Colegas, comecei meus estudos com Java devido a uma nova oportunidade de trabalho, tenho pesquisado em fóruns e livros, o ultimo que li foi o “Desenvolvendo aplicações web com netbeans 6”.

O livro realmente da uma base para desenvolver aplicações web, porém me deixou com algumas dúvidas em relação a arquitetura, ficarei grato se puderem me ajudar, seguem exemplos e dúvidas.

O autor cria a entity atraves do menu ‘Entity Class from Database’, cria um DAO e um controller (este por sua vez me parece um facade, porém não entendo a necessidade do mesmo), depois coloca referência a um array da entidade no SessionBean, segundo ele pq o fluxo padrao de trafego do visual jsf é por escopo de sessão.

Isso não ocasionaria um problema se no sessionBean houvessem referências a muitos arrays de entities ? Principalmente tendo em vista que todos esses arrays são preenchidos no metodo init() do SessionBean, ou até mesmo sendo preenchidos gradualmente.

segue em anexo um pedaço do codigo que exemplifica a situação.

public class SessionBean1 extends AbstractSessionBean {
  
    private void _init() throws Exception {
    }

    public SessionBean1() {
    }

    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        todosGrupos(); // preenche array da entity
    }

    protected GrupoController getGrupoController() {
        return (GrupoController) getBean("GrupoController");
    }
    
    private Grupo[] grupos;
    
    public Grupo[] getGrupos() {
        return grupos;
    }
    
    public void setGrupos(Grupo[] grupos){
        this.grupos = grupos;
    }
    
    public void todosGrupos() {
        grupos = (Grupo[]) getGrupoController().todos().toArray(new Grupo[0]);
    }
    
    private Integer id = null;
    
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id){
        this.id = id;
    }
}

GrupoController:

public class GrupoController {

    private BaseDao<Grupo, Long> grupoDao;

    public BaseDao<Grupo, Long> getGrupoDao() {
        return grupoDao;
    }

    public void setGrupoDao(BaseDao<Grupo, Long> grupoDao) {
        this.grupoDao = grupoDao;
    }
    
    public void atualizar(Grupo grupo) {
        grupoDao.update(grupo);
    }
    
    
    public void salvar(Grupo grupo) {
        grupoDao.save(grupo);
    }
    
    public void excluir(Grupo grupo) {
        grupoDao.delete(grupo);
    }
    
    public List todos() {
        return grupoDao.getAll("SELECT a FROM Grupo a");
    }    
}

Caso alguem conheça alguma aplicacao open source, que tenha sido desenvolvida com hibernate e visual web jsf por favor me indique

desde já obrigado