JSF e Hibernate

7 respostas
ArianeRebellato

Boa noite! Estou aprendendo JSF e quero fazer com que sejam listados dados que persisti no banco. Como fazer sem o Hibernate eu consegui…mas não to conseguindo juntar td agora…eu sei que preciso de uma coleção e de uma forma de pegar ela na view…que é o get…mas e pra chamar do banco pelo hibernate?

private static final Time times[] = {
        new Time("Inter", "BeiraRio", /*caminho+*/"inter.gif"),
        new Time("Grêmio", "Olímpico", "gremio.gif"),
        new Time("Flamengo", "Maracanã", "mengo.gif"),
        new Time("Atlético Paranaense", "Arena da Baixada", "atletico_paranaense_pr.gif"),};

    public Time[] getTimes() {
        return times;
    }
public List listarTodosUsuarios() {
        Query query = manager.createQuery("select u from usuario u");
        List<Usuario> lista = (List<Usuario>) query.getResultList();
        /*if (lista.isEmpty()) {
        }*/
        return lista;
    }

7 Respostas

ArianeRebellato

Isso faz sentido?

private static final Usuario usuarios[] = {};

    public Usuario[] getUsuarios() {
        Query query = manager.createQuery("select u from usuario u");
        List<Usuario> lista = (List<Usuario>) query.getResultList();
        if (lista.isEmpty()) {
        }
        return usuarios;
    }
ArianeRebellato

não pq ta super vazio né?
:shock:
Eu não tenho nem idéia de cm fazer…

F

Bom… primeiro, você já mapeou seu bean com Hibernate?

ArianeRebellato

Sim…e consigo persistir e inserir pela minha página jsf e o meu Bean…

ArianeRebellato

é issoo…mas agora quando tento inserir diz que o EntityManager is closed…

public List listarTodosUsuarios() {
        Query query = manager.createQuery("select u from Usuario u");
        List<Usuario> lista = (List<Usuario>) query.getResultList();
        if (lista.isEmpty()) {
        }
        return lista;
    }
     public List getUsuarios() {
        return listarTodosUsuarios();
    }
F
ArianeRebellato:
é issoo...mas agora quando tento inserir diz que o EntityManager is closed...
public List listarTodosUsuarios() {
        Query query = manager.createQuery("select u from Usuario u");
        List<Usuario> lista = (List<Usuario>) query.getResultList();
        if (lista.isEmpty()) {
        }
        return lista;
    }
     public List getUsuarios() {
        return listarTodosUsuarios();
    }

Hum... você criou a sessão do Hibernate através de PhaseListeners e está passando para o método? E se você só quer listar tudo, não precisa de uma Query. Cria uma Criteria com o Usuario.class e chama o metodo list(). E sua query está muito estranha, esse "select u from Usuario u". Geralmente você só precisa colocar o 'select' se for selecionar apenas certos campos. Então você colocaria os nomes dos campos ali, não o alias do bean.

ArianeRebellato

Eu tenho uma classe HibernateUtil e no Bean eu tenho um objeto que recebe o método dela…e sobre esse “select u from Usuario u” é HQL…baseada em SQL só que pra Hibernate…pra suportar as classes. Usuario é minha classe, no caso…se tá estranho eu não sei, ehehe, sei que ta funcionando!!

E tava dando aquela msgem “EntityManager is closed” pq eu tinha fechado o manager (manager.close()), mas eu achei que era legal sempre fechar. não sei onde fechar ele se na aplicação…

E como eu personalizo aquelas mensagens de validação?? não me saí mt bem … aonde fica este tal faces-config.xml?

Criado 6 de setembro de 2011
Ultima resposta 7 de set. de 2011
Respostas 7
Participantes 2