Hi !

Have you try to make a conversion in your repository ?
You have a class in OJB who convert INT on INTEGER (and the opposite), the
name is Int2IntegerFieldConversion.
You put a field in the repository like this (my example is a date, it works)
:
<!--
 COLUMN D8CLEH


-->

    <field-descriptor id="18"
      name="d8cleh"
      column="D8CLEH"
      jdbc-type="TIMESTAMP"

conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2SqlTimest
ampFieldConversion"

    />
Here, my example convert a Date in an sql.Timestamp (in my bean class, the
attribute has the type : java.util.Date)


Hope this can help

Cheers

-----Message d'origine-----
De : António Jorge Silva [mailto:[EMAIL PROTECTED]
Envoyé : mercredi 7 janvier 2004 05:14
À : [EMAIL PROTECTED]
Objet : Update Problem : Cannot convert class java.lang.Integer


Hi all !

I'm having  trouble when i try to update this object

the object is :

public class ComponenteAvaliacao implements IComponenteAvaliacao {
 private String _nome;
 private ISitio _sitio;
 private java.sql.Timestamp _inicioInscricoes;
 private java.sql.Timestamp _fimInscricoes;
 private int _peso;
 private int _classificacaoMinima;
 private java.sql.Timestamp _data;
 private int _duracao;
 private int _publicado;

 private List _notas;
 private List _inscritos;
 private List _salas;
 private List _pautas;

  // codigos internos da base de dados
 private int _codigoInterno;
 private int _chaveSitio;

}

With all the getters and setters and in OJB i have this

    <class-descriptor class="Dominio.ComponenteAvaliacao"
table="COMPONENTEAVALIACAO">
        <field-descriptor name="codigoInterno" column="CODIGO_INTERNO"
jdbc-type="INTEGER"
                          primarykey="true" autoincrement="true"/>
        <field-descriptor name="nome" column="NOME" jdbc-type="VARCHAR"/>
        <field-descriptor name="chaveSitio" column="CHAVE_SITIO"
jdbc-type="INTEGER"/>
        <field-descriptor name="inicioInscricoes" column="INICIO_INSCRICOES"
jdbc-type="TIMESTAMP"/>
        <field-descriptor name="fimInscricoes" column="FIM_INSCRICOES"
jdbc-type="TIMESTAMP"/>
        <field-descriptor name="peso" column="PESO" jdbc-type="INTEGER"/>
        <field-descriptor name="classificacaoMinima"
column="CLASSIFICACAO_MINIMA" jdbc-type="INTEGER"/>
        <field-descriptor name="data" column="DATA" jdbc-type="TIMESTAMP"/>
        <field-descriptor name="duracao" column="DURACAO"
jdbc-type="INTEGER"/>
        <field-descriptor name="publicado" column="PUBLICADO"
jdbc-type="INTEGER"/>
        <reference-descriptor name="sitio" class-ref="Dominio.Sitio" >
            <foreignkey field-ref="chaveSitio"/>
        </reference-descriptor>
        <collection-descriptor name="notas"
element-class-ref="Dominio.ResultadoAvaliacao">
            <inverse-foreignkey field-ref="chaveAvaliacao"/>
        </collection-descriptor>
        <collection-descriptor name="inscritos"
element-class-ref="Dominio.InscricaoComponenteAvaliacao">
            <inverse-foreignkey field-ref="chaveAvaliacao"/>
        </collection-descriptor>
        <collection-descriptor

collection-class="org.apache.ojb.broker.util.collections.ManageableArrayList
"
                name="salas"
                element-class-ref="Dominio.Sala"
                indirection-table="COMPONENTEAVALIACAOSALA"
              >
             <fk-pointing-to-this-class column="CHAVE_AVALIACAO"/>
             <fk-pointing-to-element-class column="CHAVE_SALA"/>
        </collection-descriptor>
        <collection-descriptor

collection-class="org.apache.ojb.broker.util.collections.ManageableArrayList
"
                name="pautas"
                element-class-ref="Dominio.Pauta"
                indirection-table="PAUTACOMPONENTEAVALIACAO"
              >
             <fk-pointing-to-this-class column="CHAVE_AVALIACAO"/>
             <fk-pointing-to-element-class column="CHAVE_PAUTA"/>
        </collection-descriptor>
    </class-descriptor>

The dump of the exception was :

[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: SQLException
during the execution of the Update SQL query (for a
Dominio.ComponenteAvaliacao): Cannot convert class java.lang.Integer to SQL
type requested due to java.lang.ArrayIndexOutOfBoundsException - 2
Cannot convert class java.lang.Integer to SQL type requested due to
java.lang.ArrayIndexOutOfBoundsException - 2
java.sql.SQLException: Cannot convert class java.lang.Integer to SQL type
requested due to java.lang.ArrayIndexOutOfBoundsException - 2
        at
com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:861)
        at
com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:881)
        at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(Un
known Source)
        at
org.apache.ojb.broker.platforms.PlatformMySQLImpl.setObjectForStatement(Unkn
own Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.bindValues(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdateSQL(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeMtoNImplementor(Unknow
n Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeCollections(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at org.apache.ojb.odmg.states.StateOldDirty.commit(Unknown Source)
        at
org.apache.ojb.odmg.ObjectEnvelopeTable.commitAllEnvelopes(Unknown Source)
        at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(Unknown
Source)
        at org.apache.ojb.odmg.TransactionImpl.prepare(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.commit(Unknown Source)
        at
ServidorPersistente.OJB.SuportePersistenteOJB.confirmarTransaccao(SuportePer
sistenteOJB.java:60)
        at
ServidorAplicacao.InvocadorServicosTransaccional.invoke(InvocadorServicosTra
nsaccional.java:21)
        at
ServidorAplicacao.GestorServicos.executar(GestorServicos.java:229)
        at
ServidorApresentacao.Action.Docente.PublicarClassificacoesComponenteAction.e
xecute(PublicarClassificacoesComponenteAction.java:44)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:484)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:549)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:666)
        at java.lang.Thread.run(Thread.java:534)
[org.apache.ojb.odmg.ObjectEnvelopeTable] ERROR: Commit on object level
failed for tx [EMAIL PROTECTED]
Cannot convert class java.lang.Integer to SQL type requested due to
java.lang.ArrayIndexOutOfBoundsException - 2
java.sql.SQLException: Cannot convert class java.lang.Integer to SQL type
requested due to java.lang.ArrayIndexOutOfBoundsException - 2
        at
com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:861)
        at
com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:881)
        at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(Un
known Source)
        at
org.apache.ojb.broker.platforms.PlatformMySQLImpl.setObjectForStatement(Unkn
own Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.bindValues(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdateSQL(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeMtoNImplementor(Unknow
n Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeCollections(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at org.apache.ojb.odmg.states.StateOldDirty.commit(Unknown Source)
        at
org.apache.ojb.odmg.ObjectEnvelopeTable.commitAllEnvelopes(Unknown Source)
        at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(Unknown
Source)
        at org.apache.ojb.odmg.TransactionImpl.prepare(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.commit(Unknown Source)
        at
ServidorPersistente.OJB.SuportePersistenteOJB.confirmarTransaccao(SuportePer
sistenteOJB.java:60)
        at
ServidorAplicacao.InvocadorServicosTransaccional.invoke(InvocadorServicosTra
nsaccional.java:21)
        at
ServidorAplicacao.GestorServicos.executar(GestorServicos.java:229)
        at
ServidorApresentacao.Action.Docente.PublicarClassificacoesComponenteAction.e
xecute(PublicarClassificacoesComponenteAction.java:44)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:484)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:549)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:666)
        at java.lang.Thread.run(Thread.java:534)
rethrown as org.apache.ojb.broker.PersistenceBrokerSQLException: Cannot
convert class java.lang.Integer to SQL type requested due to
java.lang.ArrayIndexOutOfBoundsException - 2
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdateSQL(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeMtoNImplementor(Unknow
n Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeCollections(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at org.apache.ojb.odmg.states.StateOldDirty.commit(Unknown Source)
        at
org.apache.ojb.odmg.ObjectEnvelopeTable.commitAllEnvelopes(Unknown Source)
        at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(Unknown
Source)
        at org.apache.ojb.odmg.TransactionImpl.prepare(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.commit(Unknown Source)
        at
ServidorPersistente.OJB.SuportePersistenteOJB.confirmarTransaccao(SuportePer
sistenteOJB.java:60)
        at
ServidorAplicacao.InvocadorServicosTransaccional.invoke(InvocadorServicosTra
nsaccional.java:21)
        at
ServidorAplicacao.GestorServicos.executar(GestorServicos.java:229)
        at
ServidorApresentacao.Action.Docente.PublicarClassificacoesComponenteAction.e
xecute(PublicarClassificacoesComponenteAction.java:44)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:484)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:549)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:666)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: Cannot convert class java.lang.Integer to
SQL type requested due to java.lang.ArrayIndexOutOfBoundsException - 2
        at
com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:861)
        at
com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:881)
        at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(Un
known Source)
        at
org.apache.ojb.broker.platforms.PlatformMySQLImpl.setObjectForStatement(Unkn
own Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.bindValues(Unknown
Source)
        ... 53 more
[org.apache.ojb.odmg.TransactionImpl] ERROR: Could not prepare for commit:
null


Please help me

thank's
Antonio


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to