Problema Hibernate annotations + Postgresql

Estou aprendendo a utilizar esta tecnologia mas no primeiro exemplo que estou fazendo esta acontecendo o seguinte problema:
mando salvar um cliente e a aplicação nao dispara nenhum erro, a sequencia do campo serial do banco incrementa, mas nao salva o objeto.
as classes são as seguntes.


import javax.persistence.*;

@Entity
public class Cliente {

@Id
@Column(name ="clienteid")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name="clientenome", nullable=false)
private String nome;
@Column(name="clienteEndereco", nullable=false)
private String endereco;
    
public Cliente() {
}
gets/sets

import br.com.rafael.locadora.model.Cliente;
import br.com.rafael.locadora.model.Jpa;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateFactory {

private static SessionFactory factory;

static{
   AnnotationConfiguration cfg = new AnnotationConfiguration();
   cfg.addAnnotatedClass(Cliente.class);
   factory = cfg.buildSessionFactory();
}


public Session getSession(){
    return factory.openSession();
}

}


import br.com.rafael.locadora.hibernate.HibernateFactory;
import org.hibernate.Session;

public class TestaPersistencia {

/** Creates a new instance of TestaPersistencia */
public static void main(String[] args){
    Session session = new HibernateFactory().getSession();
    Cliente cliente = new Cliente();
    cliente.setEndereco("Rua xxxx");
    cliente.setNome("Rafael");
    session.save(cliente);
    System.out.println("Cliente ID: "+cliente.getId());
    session.close();
    
}

}

Coloque seu método save(Object) dentro de um bloco try-catch. Isso nao resolve o problema, mas talvez a gente possa descobrir o erro.

try {
     session.save(cliente);
} catch (HibernateException he) {
     he.printStackTrace();
}

Verifique se ocorre alguma exception no Console. Faça o tratamento de exceção de acordo com a dica acima e terá mais chances de descobrir os erros.

coloquei o save(Object) dentro de um bloco try-catch e não ocorreu nenhuma exception!!!

coloquei o save(Object) dentro de um bloco try-catch e não ocorreu nenhuma exception!!!

Não deveria haver uma Transaction dentro de sua Session? Operacoes de insercao, atualizacao e delecao devem estar dentro de uma Transaction. A unica operacao que nao precisa disso, eh a seleção.

Qualquer duvida, há vários itens falando sobre Transaction aqui.