Hibernate grava na sessão, mas não grava no banco

Tenho uma aplicação coonfigurado o hibernate!!!

Fiz uma fábrica de criação de tabelas que recebe a classe como parametro!!!
Funciona normalmente, pois eu defino na classe as anotações!!!

Conforme a apostila do guj eu crieiii uma fábrica de sessão!!1
Tudo bonitinho funciona que é uma beleza, mas o mais importante nao funciona que é guardar no banco.

Quando vou buscar na sessao o id 55 existe mas o meu banco de dados esta em branco.

grato,
Lelo

E o commit?? Tá aonde?!?

vc precisa fazer um flush da seção pode ser session.flush() ou criar uma transação e fazer commit.

O flush faz vc sincronizar o banco e a memória, fazendo com que o banco entenda que existe uma transação em execução com os determinados dados… só o commit com sucesso garante que vc gravou no banco…

Coloquei o flush e fechei a session!!!
E no banco nao tem nada, o engraçado é que o banco está sincronizado com a minha aplicação por
que eu já consegui incluir os campos.
mas os registros eu nao estou conseguindo…
olhem o meu código!!!

valeuu

package hibernate;

import org.hibernate.Session;

public class GeraTabelas {

public static void main(String[] args) {

	HibernateFactory factory = new HibernateFactory();

	Session session = factory.getSession();

	Produto p = new Produto();
	p.setNome("Nome");
	p.setDescricao("desc");
	p.setPreco(100.50);

	session.save(p);
	session.flush();
	session.close();
	System.out.println("adicionad");
}

}

e eu nao acho o comit…
nao tenho a opcção de session.comit()

vc pode estar usando o hibernate.jar errado!!!

Erro meu, desculpe…
Vc nunca vai achar o session.commit() porque ele é da classe Transaction…

Veja esse HibernateSessionFactory… ele pode te ajudar…

[code]public class HibernateSessionFactory {

/**
 * Construtor no-arg
 * Protegido para evitar a criação da classe
 */
protected HibernateSessionFactory() {
	super();
}

/* Constante de caminho do arquivo de configuração do Hibernate */
private static String DEFAULT_CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";

/* Threads que controlarão a sessão e a transação */
private static final ThreadLocal<Session> threadSession = new ThreadLocal<Session>();
private static final ThreadLocal<Transaction> threadTransaction = new ThreadLocal<Transaction>();

/* Variaveis do Hibernate */
private static final Configuration cfg = new Configuration();
private static SessionFactory sessionFactory;

/**
 * Método que retorna a instancia da Sessão utilizando o arquivo default do hibernate (/hibernate.cfg.xml).
 * @return Session
 * @throws SessionFactoryException
 */
public static Session getCurrentSession() throws HibernateException {
	return HibernateSessionFactory.getCurrentSession(DEFAULT_CONFIG_FILE_LOCATION);
}

/**
 * Método que retorna a instancia da Sessão.
 * @return Session
 * @throws SessionFactoryException
 */
public static Session getCurrentSession(String configFile) throws HibernateException {
    Session session = threadSession.get();

	try {
		if (session == null || !session.isOpen()) {
			if (sessionFactory == null) {
				try {
					cfg.configure(configFile);
					sessionFactory = cfg.buildSessionFactory();
				} catch (Exception e) {
					throw e;
				}
			}
			session = (sessionFactory != null) ? sessionFactory.openSession() : null;
			threadSession.set(session);
		}
	} catch (Exception e) {
		throw new HibernateException(e);
	}

    return session;
}

/**
 * Método que fecha a sessão do Hibernate.
 * @throws SessionFactoryException
 */
public static void doCloseSession() throws HibernateException {
    Session session = threadSession.get();
    threadSession.set(null);

    try {
		if (session != null) {
		    session.close();
		}
	} catch (Exception e) {
		throw new HibernateException(e);
	}
}

/**
 * Método que inicia a transação do Hibernate.
 * @throws SessionFactoryException
 */
public static void doBeginTransaction() throws HibernateException {
	Transaction tx = threadTransaction.get();

	try {
		if(tx == null){
			tx = getCurrentSession().beginTransaction();
			threadTransaction.set(tx);
		}
	} catch (Exception e) {
		throw new HibernateException(e);
	}
}

/**
 * Método que executa o rollback da transação.
 * @throws SessionFactoryException
 */
public static void doRollback() throws HibernateException {
	Transaction tx = threadTransaction.get();

	try {
		if(tx != null && !tx.wasCommitted() && !tx.wasRolledBack()){
			tx.rollback();
			threadTransaction.set(null);
		}
	} catch (Exception e) {
		throw new HibernateException(e);
	}
}

/**
 * Método que commita a transação.
 * @throws SessionFactoryException
 */
public static void doCommit() throws HibernateException {
	Transaction tx = threadTransaction.get();

	try {
		if(tx != null && !tx.wasCommitted() && !tx.wasRolledBack()){
			tx.commit();
			threadTransaction.set(null);
		}
	} catch (Exception e) {
		doRollback();
		throw new HibernateException(e);
	}
}

}[/code]

/BLzzz!!!
valeuuu funcionou!!!
abraços