Dúvida com Hibernate

6 respostas
m4des

Ola pessoal, estou iniciando com o Hibernate e tenho um método que retorna todos os usuarios cadastrados na minha classe:

public List<Usuario> getTodosUsuarios() {

}

A minha dúvida é que se dentro de um projeto a utilização de List ou List faz alguma diferença, e se fizer como faço para o Hibernate me retornar um List.

Agradeço a todos.

6 Respostas

L
public Usuario[] getTodosUsuarios(SessionFactory sessionFactory) {  

     Session session = sessionFactory.openSession();

     Criteria criteria = session.createCriteria(Usuario.class);  

     Usuario[] usuarios = (Usuario[])criteria.list().toArray(new Usuario[criteria.list().size()]);

     session.close();

     return usuarios;
}
m4des

Opa, obrigado pela ajuda lauronolasco.

G

Boa tarde.

Na verdde o exemplo do lauronolasco você pode retornar direto o arraylist. O método list da Criteria já faz isso, você só precisa fazer o cast.

public List<Usuario> getTodosUsuarios(SessionFactory sessionFactory) {    
   
      Session session = sessionFactory.openSession();  
   
      Criteria criteria = session.createCriteria(Usuario.class);    
   
      List<Usuario>  usuarios = (List<Usuario>)criteria.list();
      
      session.flush();
      session.close();  
   
      return usuarios;  
 }
m4des

Valeu pela dica gilberto.souza, pois no projeto que estou desenvolvendo e mais conveniente pra mim trabalhar com Lists.

raci0nal
Vem cá Gilberto... uma curiosidade Qual a necessidade desse
session.flush()
após o "list();"? Este comando não é para sincronizar o persistente com o "persistível"? Nesse caso você não alterou o estado dos objetos...
gilberto.souza:
Boa tarde.

Na verdde o exemplo do lauronolasco você pode retornar direto o arraylist. O método list da Criteria já faz isso, você só precisa fazer o cast.

public List<Usuario> getTodosUsuarios(SessionFactory sessionFactory) {    
   
      Session session = sessionFactory.openSession();  
   
      Criteria criteria = session.createCriteria(Usuario.class);    
   
      List<Usuario>  usuarios = (List<Usuario>)criteria.list();
      
      session.flush();
      session.close();  
   
      return usuarios;  
 }
G

Isso tem a ver com os estados da entidade, quando você recupera a entidade ela está amarrada ao banco e caso você tente manipular as entidades depois de fechar a sessão vai dar um erro pra você, mas se você der o flush, ele libera todas as entidades ainda presas a sessão.

Criado 23 de fevereiro de 2008
Ultima resposta 25 de fev. de 2008
Respostas 6
Participantes 4