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;
}
privatestaticfinalUsuariousuarios[]={};publicUsuario[]getUsuarios(){
Queryquery=manager.createQuery("select u from usuario u");List<Usuario>lista=(List<Usuario>)query.getResultList();if(lista.isEmpty()){
}
returnusuarios;}
ArianeRebellato
não pq ta super vazio né?
:shock:
Eu não tenho nem idéia de cm fazer…
F
fernando.camargo
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…
publicListlistarTodosUsuarios(){
Queryquery=manager.createQuery("select u from Usuario u");List<Usuario>lista=(List<Usuario>)query.getResultList();if(lista.isEmpty()){
}
returnlista;}
publicListgetUsuarios(){
returnlistarTodosUsuarios();}
F
fernando.camargo
ArianeRebellato:
é issoo...mas agora quando tento inserir diz que o EntityManager is closed...
publicListlistarTodosUsuarios(){
Queryquery=manager.createQuery("select u from Usuario u");List<Usuario>lista=(List<Usuario>)query.getResultList();if(lista.isEmpty()){
}
returnlista;}
publicListgetUsuarios(){
returnlistarTodosUsuarios();}
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?