Hibernate. erro ao salvar objeto com + de 2 itens [resolvido]

Atualizei para Hibernate 3.0.5 e funcionou normalmente com o pool. Já é a segunda vez que perco muito tempo pensando que fiz algo errado e que foi resolvido atualizando o hibernate. Na versão 3.0.5 do hibernate, o c3p0 está atualizado.

Eu nunca li documentação do pool e nem do driver. Para falar a verdade, eu não sei muito bem como funciona esse “tal” pool. Só uso porque li no livro Hibernate in Action que isso é altamente recomendável e que uma boa solução open source de pool é o c3p0.

Veja minha configuração. Tem algo que eu deveria mudar?

hibernate.connection.driver_class = org.firebirdsql.jdbc.FBDriver
hibernate.connection.url = jdbc:firebirdsql://servidor:3050/c:\SOR\BANCO.FDB
hibernate.connection.username = SYSDBA
hibernate.connection.password = masterkey
hibernate.connection.lc_ctype = WIN1252
hibernate.show_sql = true
hibernate.dialect = org.hibernate.dialect.FirebirdDialect
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=300
hibernate.c3p0.max_statements=50
hibernate.c3p0.idle_test_period=3000

Tava dando uma lina nese tópico e achei legal postar.
Eu também tenho uma aplicação desktop com swing, e eu utilizo ThreadLocal pra carregar as sessões.

Olha ai um exemplo de classe de conexão:

public class ConnectionFactory {
    
    private static final SessionFactory sessionFactory;
    private static final ThreadLocal<Session> threadLocal =
            new ThreadLocal<Session>();
    
    static {
        
        try {
            sessionFactory = new AnnotationConfiguration().configure(
                    "hibernate.cfg.xml").buildSessionFactory();
        } catch (Throwable t) {
            throw new ExceptionInInitializerError(t);
        }
        
    }
    
    public static Session getInstance() {
        Session session = (Session) threadLocal.get();
        session = sessionFactory.openSession();
        threadLocal.set(session);
        return session;
    }
    
}

e para chamar a instância é só fazer assim:

Session session = ConnectionFactory.getInstance();

Até!