Could not fetch initial value

olahH

tenhu um VO simples…com um id do tipo Integer…configurei o xml bunitinhu…mas ele tah lançando as exceptions a seguir qnd vou inserir

Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not fetch initial value at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92) at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:90) at org.hibernate.id.IncrementGenerator.generate(IncrementGenerator.java:43) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:85) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:429) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:424) at dot.Main.main(Main.java:67) Caused by: java.sql.SQLException: An SQLException was provoked by the following failure: java.lang.NullPointerException at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:68) at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:57) at com.mchange.v2.c3p0.stmt.GooGooStatementCache$2.run(GooGooStatementCache.java:343) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:354) Caused by: java.lang.NullPointerException at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:562) at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:504) at com.mysql.jdbc.PreparedStatement.toString(PreparedStatement.java:3228) at java.lang.String.valueOf(String.java:2577) at java.lang.StringBuffer.append(StringBuffer.java:220) at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240) at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167) at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126) at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8(Tracer.aj:45) at com.mysql.jdbc.Connection.registerStatement(Connection.java) at com.mysql.jdbc.Statement.<init>(Statement.java:190) at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:429) at com.mysql.jdbc.Connection.clientPrepareStatement(Connection.java:2063) at com.mysql.jdbc.Connection.clientPrepareStatement(Connection.java:1996) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4266) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4185) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.mchange.v2.c3p0.stmt.GooGooStatementCache$2.run(GooGooStatementCache.java:333)

acho q deve ser alguma coisa com o id…mas num tah dando…alguem pode me dar uma luz???

Cara olha o generate do seu xml!
tipo:
<generator class=“assigned”/>
Ele deve estar de um jeito no hbm e de ooutro no banco!
Tipo que vc ta falando na xml que o campo id esta com autoincremente e ele nao esta no banco assim.
Se não resolver
Posta seu HBm ai!

[code]<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="dot.modelo.cartao" table="cartao">

<id name="id">
<generator class="increment"/>
</id>

<property name="dia" column="dia"/>
<property name="entrada" column="entrada"/>
<property name="retInt" column="retint"/>
<property name="saida" column="saida"/>
<property name="th" column="th"/>

</class>
</hibernate-mapping>[/code]

meu id:

primary key, not null, tinyint(3), auto increment

Muda o <generator class=“increment”/>
para assigned, ou deixa em branco!

parece q o problema do id foi resolvido…mas ele tah dando nullpointerexception

Hibernate&#58; /*insert dot.modelo.doxo*/insert into doxo &#40;doxo, lol, id&#41; values &#40;?, ?, ?&#41; Exception in thread &quot;main&quot; org.hibernate.exception.GenericJDBCException&#58; could not insert&#58; &#91;dot.modelo.doxo&#93; at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException&#40;ErrorCodeConverter.java&#58;92&#41; at org.hibernate.exception.ErrorCodeConverter.convert&#40;ErrorCodeConverter.java&#58;80&#41; at org.hibernate.exception.JDBCExceptionHelper.convert&#40;JDBCExceptionHelper.java&#58;43&#41; at org.hibernate.persister.entity.BasicEntityPersister.insert&#40;BasicEntityPersister.java&#58;1839&#41; at org.hibernate.persister.entity.BasicEntityPersister.insert&#40;BasicEntityPersister.java&#58;2171&#41; at org.hibernate.action.EntityInsertAction.execute&#40;EntityInsertAction.java&#58;46&#41; at org.hibernate.engine.ActionQueue.execute&#40;ActionQueue.java&#58;239&#41; at org.hibernate.engine.ActionQueue.executeActions&#40;ActionQueue.java&#58;223&#41; at org.hibernate.engine.ActionQueue.executeActions&#40;ActionQueue.java&#58;136&#41; at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions&#40;AbstractFlushingEventListener.java&#58;274&#41; at org.hibernate.event.def.DefaultFlushEventListener.onFlush&#40;DefaultFlushEventListener.java&#58;27&#41; at org.hibernate.impl.SessionImpl.flush&#40;SessionImpl.java&#58;669&#41; at org.hibernate.impl.SessionImpl.managedFlush&#40;SessionImpl.java&#58;293&#41; at org.hibernate.transaction.JDBCTransaction.commit&#40;JDBCTransaction.java&#58;86&#41; at dot.Main.main&#40;Main.java&#58;70&#41; Caused by&#58; java.sql.SQLException&#58; An SQLException was provoked by the following failure&#58; java.lang.NullPointerException at com.mchange.v2.sql.SqlUtils.toSQLException&#40;SqlUtils.java&#58;68&#41; at com.mchange.v2.sql.SqlUtils.toSQLException&#40;SqlUtils.java&#58;57&#41; at com.mchange.v2.c3p0.stmt.GooGooStatementCache$2.run&#40;GooGooStatementCache.java&#58;343&#41; at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run&#40;ThreadPoolAsynchronousRunner.java&#58;354&#41; Caused by&#58; java.lang.NullPointerException at com.mysql.jdbc.PreparedStatement.asSql&#40;PreparedStatement.java&#58;562&#41; at com.mysql.jdbc.PreparedStatement.asSql&#40;PreparedStatement.java&#58;504&#41; at com.mysql.jdbc.PreparedStatement.toString&#40;PreparedStatement.java&#58;3228&#41; at java.lang.String.valueOf&#40;String.java&#58;2577&#41; at java.lang.StringBuffer.append&#40;StringBuffer.java&#58;220&#41; at com.mysql.jdbc.trace.Tracer.printParameters&#40;Tracer.aj&#58;240&#41; at com.mysql.jdbc.trace.Tracer.printEntering&#40;Tracer.aj&#58;167&#41; at com.mysql.jdbc.trace.Tracer.entry&#40;Tracer.aj&#58;126&#41; at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8&#40;Tracer.aj&#58;45&#41; at com.mysql.jdbc.Connection.registerStatement&#40;Connection.java&#41; at com.mysql.jdbc.Statement.&lt;init&gt;&#40;Statement.java&#58;190&#41; at com.mysql.jdbc.PreparedStatement.&lt;init&gt;&#40;PreparedStatement.java&#58;429&#41; at com.mysql.jdbc.Connection.clientPrepareStatement&#40;Connection.java&#58;2063&#41; at com.mysql.jdbc.Connection.clientPrepareStatement&#40;Connection.java&#58;1996&#41; at com.mysql.jdbc.Connection.prepareStatement&#40;Connection.java&#58;4266&#41; at com.mysql.jdbc.Connection.prepareStatement&#40;Connection.java&#58;4185&#41; at sun.reflect.NativeMethodAccessorImpl.invoke0&#40;Native Method&#41; at sun.reflect.NativeMethodAccessorImpl.invoke&#40;NativeMethodAccessorImpl.java&#58;39&#41; at sun.reflect.DelegatingMethodAccessorImpl.invoke&#40;DelegatingMethodAccessorImpl.java&#58;25&#41; at java.lang.reflect.Method.invoke&#40;Method.java&#58;585&#41; at com.mchange.v2.c3p0.stmt.GooGooStatementCache$2.run&#40;GooGooStatementCache.java&#58;333&#41; ... 1 more

eu fis ateh um otro VO pa testa…mas tah dando a mesma coisa…

pa salva eu to fz assim

[code]Session sessao = HibernateUtility.getSession();
Transaction transaction = sessao.beginTransaction();

    doxo d = new doxo&#40;&#41;;  
    d.setDoxo&#40;&quot;doOOXOXO&quot;&#41;;
    d.setLol&#40;&quot;lOOOOLll&quot;&#41;;


    sessao.save&#40;d&#41;;
    
    transaction.commit&#40;&#41;;
    sessao.close&#40;&#41;;[/code]

Cara, ta melhorando, faz um teste, atribui um valor pro id tb!
Mesmo que ele gere sozinho, só para nao dar nullpointerException!

eu jah tentei…num funciono…mas eu coloquei o log4j e olha só

2005-08-18 10&#58;49&#58;48,468 WARN hibernate.util.JDBCExceptionReporter -&gt; SQL Error&#58; 0, SQLState&#58; null 2005-08-18 10&#58;49&#58;48,468 ERROR hibernate.util.JDBCExceptionReporter -&gt; An SQLException was provoked by the following failure&#58; java.lang.NullPointerException 2005-08-18 10&#58;49&#58;48,468 ERROR event.def.AbstractFlushingEventListener -&gt; Could not synchronize database state with session

2005-08-18 10&#58;49&#58;48,359 DEBUG MySQL -&gt; &lt;-- RowDataStatic.java&#58;89 com.mysql.jdbc.RowDataStatic.close&#40;..&#41; returning null 2005-08-18 10&#58;49&#58;48,359 DEBUG MySQL -&gt; &lt;-- ResultSet.java&#58;6319 com.mysql.jdbc.ResultSet.realClose&#40;..&#41; returning null 2005-08-18 10&#58;49&#58;48,359 DEBUG MySQL -&gt; &lt;-- ResultSet.java&#58;715 com.mysql.jdbc.ResultSet.close&#40;..&#41; returning null 2005-08-18 10&#58;49&#58;48,359 DEBUG hibernate.util.JDBCExceptionReporter -&gt; SQL Exception

boOMMM eu resolvi o problema acima…era a conf. do c3p0 do cfg.xml…

mas agora tah dando nullpointerexcetion no transaction.commit();.,…puta briga com esse hibernate…lol…mas eu vou persistir mais do q ele AUHEuaheuahaue…

intaum…alguem sabe o q pode ser??

Nao desiste nao, depois da primeira transação gravando o resto vai de vento e poupa!

Posta o log do ultimo erro ai!!

Fri Aug 19 08&#58;35&#58;10 BRT 2005 TRACE&#58; Fri Aug 19 08&#58;35&#58;10 BRT 2005 TRACE&#58; Hibernate&#58; /* insert dot.modelo.doxo */ insert into doxo &#40;doxo, lol, id&#41; values &#40;?, ?, ?&#41; Exception in thread &quot;main&quot; java.lang.NullPointerException at com.mysql.jdbc.PreparedStatement.asSql&#40;PreparedStatement.java&#58;562&#41; at com.mysql.jdbc.PreparedStatement.asSql&#40;PreparedStatement.java&#58;504&#41; at com.mysql.jdbc.PreparedStatement.toString&#40;PreparedStatement.java&#58;3228&#41; at java.lang.String.valueOf&#40;String.java&#58;2577&#41; at java.lang.StringBuffer.append&#40;StringBuffer.java&#58;220&#41; at com.mysql.jdbc.trace.Tracer.printParameters&#40;Tracer.aj&#58;240&#41; at com.mysql.jdbc.trace.Tracer.printEntering&#40;Tracer.aj&#58;167&#41; at com.mysql.jdbc.trace.Tracer.entry&#40;Tracer.aj&#58;126&#41; at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8&#40;Tracer.aj&#58;45&#41; at com.mysql.jdbc.Connection.registerStatement&#40;Connection.java&#41; at com.mysql.jdbc.Statement.&lt;init&gt;&#40;Statement.java&#58;190&#41; at com.mysql.jdbc.PreparedStatement.&lt;init&gt;&#40;PreparedStatement.java&#58;429&#41; at com.mysql.jdbc.Connection.clientPrepareStatement&#40;Connection.java&#58;2063&#41; at com.mysql.jdbc.Connection.clientPrepareStatement&#40;Connection.java&#58;1996&#41; at com.mysql.jdbc.Connection.prepareStatement&#40;Connection.java&#58;4266&#41; at com.mysql.jdbc.Connection.prepareStatement&#40;Connection.java&#58;4185&#41; at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement&#40;NewProxyConnection.java&#58;189&#41; at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement&#40;AbstractBatcher.java&#58;396&#41; at org.hibernate.jdbc.AbstractBatcher.prepareStatement&#40;AbstractBatcher.java&#58;76&#41; at org.hibernate.jdbc.AbstractBatcher.prepareStatement&#40;AbstractBatcher.java&#58;69&#41; at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement&#40;AbstractBatcher.java&#58;150&#41; at org.hibernate.persister.entity.BasicEntityPersister.insert&#40;BasicEntityPersister.java&#58;1839&#41; at org.hibernate.persister.entity.BasicEntityPersister.insert&#40;BasicEntityPersister.java&#58;2200&#41; at org.hibernate.action.EntityInsertAction.execute&#40;EntityInsertAction.java&#58;46&#41; at org.hibernate.engine.ActionQueue.execute&#40;ActionQueue.java&#58;239&#41; at org.hibernate.engine.ActionQueue.executeActions&#40;ActionQueue.java&#58;223&#41; at org.hibernate.engine.ActionQueue.executeActions&#40;ActionQueue.java&#58;136&#41; at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions&#40;AbstractFlushingEventListener.java&#58;274&#41; at org.hibernate.event.def.DefaultFlushEventListener.onFlush&#40;DefaultFlushEventListener.java&#58;27&#41; at org.hibernate.impl.SessionImpl.flush&#40;SessionImpl.java&#58;730&#41; at dot.Main.main&#40;Main.java&#58;76&#41; Fri Aug 19 08&#58;35&#58;10 BRT 2005 TRACE&#58; Fri Aug 19 08&#58;35&#58;11 BRT 2005 TRACE&#58;


76        session.flush&#40;&#41;;
77        tx.commit&#40;&#41;;
78        session.close&#40;&#41;;

Cara,

olha meu metodo commit:

protected void commit&#40;Session sess, Transaction tx&#41; throws Exception &#123;

logF.debug&#40;&quot;#################### Entrou no evento commit&quot;&#41;;
		
Exception exc = new Exception&#40;&#41;;
String msg = &quot;&quot;;
		
try &#123;

sess.flush&#40;&#41;;
  if &#40; tx != null &#41; &#123;
          tx.commit&#40;&#41;;       
         aposChamarBO&#40;sess&#41;; 
			  &#125;
       logF.debug&#40;&quot;############# Commit ok&quot;&#41;;
       if &#40;logTempoTransacao.isDebugEnabled&#40;&#41;&#41; 
	logTempoTransacao.debug&#40;&quot;Fez commit em &quot;+ new java.util.Date&#40;&#41;&#41;;		
			
	&#125; catch &#40;JDBCException e1&#41; &#123;
			log.fatal&#40;&quot;Erro SQL ao tentar gravar&#58; &quot; + e1&#41;;
			msg=&quot;erros.sql.geral&quot;;
			exc = e1;
		&#125; catch &#40;HibernateException e2&#41; &#123;
			log.fatal&#40;&quot;Erro Hibernate ao tentar gravar&#58; &quot; + e2&#41;;
	exc = e2;
			msg=&quot;erros.hibernate.geral&quot;;
		&#125; catch &#40;Exception e&#41; &#123;
			log.error&#40;&quot;Erro Geral ao tentar gravar&#58; &quot; +e,e&#41;;
			e.printStackTrace&#40;&#41;;
			exc = e;
			msg=&quot;erros.persistencia.geral&quot;;
		&#125; 

		try &#123;
				
	       // Setando o autoCommit para falso devido a erro com o mysql
	       // se a transacao for nula entao considera que o objeto esta sendo
	       // com CMP
	      if &#40;tx!=null&#41; 
	      	  sess.connection&#40;&#41;.setAutoCommit&#40;false&#41;;
			
		  if &#40;tx!=null&#41; tx.rollback&#40;&#41;;
		
		    Connection con = sess.close&#40;&#41;;
			
// Muda autocommit para true para atender ao websphere
// TODO Precisa ser homologado com demais App Servers
			con.setAutoCommit&#40;true&#41;;
			con.close&#40;&#41;;
			
logF.debug&#40;&quot;############# Fechou e devolveu conexao para o pool&quot;&#41;;

 &#125; catch &#40;Exception ex&#41; &#123;
  log.fatal&#40;&quot;Nao conseguiu devolver o pool para o App Server&#58;&quot;+ex&#41;;
	msg=&quot;erros.persistencia.geral&quot;;
			exc=ex;
		&#125;	
	
	if &#40;!msg.equals&#40;&quot;&quot;&#41;&#41; &#123;
			MsgErro erro = MsgErro.getInstance&#40;&#41;;
			throw erro.msg&#40;msg,new Object&#91;&#93; &#123;exc&#125;,exc&#41;;
		&#125;

		if &#40;logTempoTransacao.isDebugEnabled&#40;&#41;&#41; 
			logTempoTransacao.debug&#40;&quot;Encerrou Classe&#58;&quot;+this.getClass&#40;&#41;+&quot; com commit em Tempo&#58;&quot;&#41;;
		
	&#125;
	

É o mesmo que vc ta fazendo, agora acho melhor vc debugar mesmo!
O debug do eclipse é Exelente, colocando um breakPoint no commit(), vc consegue ver tudo, ate os sqls que irão rodar!
Olha o que ta chegando lá!

eu to usando o netBeans…e eu to dando o commit direto…tx.commit();

ele faz tudo certinho…se eu manda ele imprimir o id da transação ele imprime certinho…eh só na hora do commit mesmo…e acontece a mesma coisa com o flush…


Session sess = new HibernateUtil.getSession&#40;&#41;;
Transaction tx = sessi.beginTransaction&#40;&#41;;

doxo d = new doxo&#40;&#41;;

d.setDoxo&#40;&quot;lOLLL&quot;&#41;;
d.setLol&#40;&quot;DoxoOO&quot;&#41;;
d.setId&#40;1&#41;;

sess.save&#40;d&#41;;

tx.commit&#40;&#41;;
sess.close&#40;&#41;;

aEWWWWWWWWWWWWWWW…finalmente…passei po eclipse e funfo…só de passa po eclipse…nem debugei nada…

valew anderson…sem vc naum teria conseguido…mto obrigado pela ajuda… :grin: :grin:

É isso aê cara!
Tamo ai pra isso Mermo!!!
Flow!!