Dúvida com Hibernate

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.

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;
} 

Opa, obrigado pela ajuda lauronolasco.

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.

[code] public List 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;  

} [/code]

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

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…

[quote=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.

[code] public List 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;  

} [/code][/quote]

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.