Hibernate Sessao, Collection

Olá a todos!!

Estou estudando hibernate pelo próprio manual deles e estou com algumas duvidas

[list]1º No tutorial do hibernate é usado o HSQL. Para obter uma Session é feito [/list]

Mas quando eu fui trabalhar com PostgreSQL a linha anterior nao funcionou, então eu vi em alguns tutoriais pela net que o pessoal utiliza :

Qual a diferença entre entre o getCurrentSession() e o openSession() ?

[list]2º No meu JavaBean eu coloquei uma propriedade do tipo “List” para referenciar a um conjunto de objetos. Mas nao funcionava, e vi que funciona apenas se a propriedade for do tipo “Set”. Por isso ocorre?[/list]

[list]3º Eu percebi também que quando tenho um relacionamento do tipo N:N dá o seguinte problema :[/list]

    Aluno aluno = new Aluno();
    ... //Fazer os set's
    aluno.setMaterias(materias); //materias é um colection q atribui antes
    session.save;
O código acima da problema. Percebi que o unico jeito é fazer :
    Aluno aluno = new Aluno();
    ... //Fazer os set's
    session.save;
    ...
    //Depois em outra transação 
    Aluno aluno = session.load(aluno.class, 1);
    aluno.getMaterias().add(materia);
Por que o 1º jeito nao funfa? 

Agradeços as colaborações

[quote=cleriston]Olá a todos!!

Estou estudando hibernate pelo próprio manual deles e estou com algumas duvidas

[list]1º No tutorial do hibernate é usado o HSQL. Para obter uma Session é feito [/list]

Mas quando eu fui trabalhar com PostgreSQL a linha anterior nao funcionou, então eu vi em alguns tutoriais pela net que o pessoal utiliza :

Qual a diferença entre entre o getCurrentSession() e o openSession() ?
[/quote]

[color=darkblue]

getCurrentSession : Ele utiliza-se da sessão corrente, utiliza-se de uma sessão já estabelecida com a base de dados

openSession : Ele abre uma nova sessão com a base de dados

[/color]

http://www.hibernate.org/hib_docs/v3/api/org/hibernate/SessionFactory.html#getCurrentSession()