Hibernate Com oracle

4 respostas
R

Estou com o seguinte problema… consigo fazer a conexao com o banco de dados oracle … faco a inserção do objeto… mas não consigo gravar na tabela… como se eu não conseguisse fazer o commit… nao causa erro algum apenas nao grava no banco.

A classe esta correta pois no banco mysql funciona corretamente… mas quando troco a conexao para o oracle… da esse problema…

Valeus

4 Respostas

Mauricio_Linhares

Você tem certeza absoluta que a exceção não está sendo silenciada em lugar nenhum?

Coloque o código aí.

Z

Você já tentou dá um commit? i.e., abrir uma transação, inserir o dado e commitar a transação.

O MySQL deve tá com autocommit ativado, daí o motivo de você ter conseguido sem ter se preocupado com transação.

R

A primeira classe eh a classe AmigoDAO e a segunda é da construcao da sessao inicio d transacao e commit. Não postei elas inteiras mas as açoes utilizadas estao ai

– primeira

public AmigoDAO() throws Exception {

session = HibernateUtil.getSessionFactory          ().openSession();

HibernateUtil.beginTransaction();

//factory = new Configuration().addClass(Amigo.class)

//	.buildSessionFactory();

}
public void insert(Amigo amigo) throws Exception {
	//Session session = factory.openSession();		
	session.save(amigo);
	HibernateUtil.commitTransaction();
	session.flush();
    session.close();
}

–Segunda

public class HibernateUtil {

private static Log log = LogFactory.getLog(HibernateUtil.class);
private static Configuration configuration;
private static SessionFactory sessionFactory;
private static final ThreadLocal threadSession = new ThreadLocal();
private static final ThreadLocal threadTransaction = new ThreadLocal();
private static final ThreadLocal threadInterceptor = new ThreadLocal();


static {
	try {
		sessionFactory = new Configuration()
		.addClass(Amigo.class)
		.addClass(daos.Pessoa.class)
		.addClass(daos.Endereco.class)
		.buildSessionFactory();
	} catch (Throwable ex) {
		log.error("Building SessionFactory failed.", ex);
		throw new ExceptionInInitializerError(ex);
	}
}

public static void closeSession()
	throws InfrastructureException {
	try {
		Session s = (Session) threadSession.get();
		threadSession.set(null);
		if (s != null && s.isOpen()) {
			log.debug("Closing Session of this thread.");
			s.close();
		}
	} catch (HibernateException ex) {
		throw new InfrastructureException(ex);
	}
}

/**
 * Start a new database transaction.
 */
public static void beginTransaction()
	throws InfrastructureException {
	Transaction tx = (Transaction) threadTransaction.get();
	try {
		if (tx == null) {
			log.debug("Starting new database transaction in this thread.");
			tx = getSession().beginTransaction();
			threadTransaction.set(tx);
		}
	} catch (HibernateException ex) {
		throw new InfrastructureException(ex);
	}
}

/**
 * Commit the database transaction.
 */
public static void commitTransaction()
	throws InfrastructureException {
	Transaction tx = (Transaction) threadTransaction.get();
	try {
		if ( tx != null && !tx.wasCommitted()
						&& !tx.wasRolledBack() ) {
			log.debug("Committing database transaction of this thread.");
			tx.commit();
		}
		threadTransaction.set(null);
	} catch (HibernateException ex) {
		rollbackTransaction();
		throw new InfrastructureException(ex);
	}
}
B

Boa tarde turma, gostaria de uma ajuda com o seguinte erro:

Exception in thread main java.lang.ExceptionInInitializerError

at classesDAO.PessoaDAO.(PessoaDAO.java:14)

at classesDAO.TesteInsercao.main(TesteInsercao.java:26)

Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) (Caused by org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException))

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)

at org.hibernate.cfg.Configuration.(Configuration.java:110)

 2 more

Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException)

at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)

 6 more

Estou trabalhando com middlengen e hibernate com o banco oracle. Estou tentando fazer um teste para salvar alguns dados numa tabela e quando executo a classe gera esse erro esquisito.
Já tentei procurar no google más não obtive sucesso.
Agradeço qualquer ajuda, obrigado.

Criado 15 de junho de 2005
Ultima resposta 29 de mai. de 2006
Respostas 4
Participantes 4