Hi Alessandro,

I have a problem to understand your metadata mapping posted in JIRA.

In class Docassiste the 1:1 reference is

<field-descriptor name="dbcodass" default-fetch="true" column="DBCODASS" jdbc-type="VARCHAR"/> <reference-descriptor name="dbcodassRef" class-ref="w4b.com.cassagest.db.Passiste" auto-update="false" auto-delete="false" proxy="false">
  <foreignkey field-ref="dbcodass"/>
</reference-descriptor>

But the PK field in class Passiste is defined as

<field-descriptor name="pbprogre" primarykey="true" default-fetch="true" autoincrement="true" sequence-name="public.passiste_pbprogre_seq" column="PBPROGRE" jdbc-type="INTEGER"/>

The jdbc-type is Integer not VARCHAR. Is this a typo in your JIRA mapping example or a bug in your mapping?

regards,
Armin

Alessandro Vincelli wrote:


I add to JIRA this problem.

and:

NOTE: If I remove form <class-descriptor class="w4b.com.cassagest.db.Passiste" table="PASSISTE">:

<reference-descriptor name="dbcodassRef" class-ref="w4b.com.cassagest.db.Passiste" auto-update="false" auto-delete="false" proxy="false">
            <foreignkey field-ref="dbcodass"/>
        </reference-descriptor>

and this lines from NOTE: If I remove form <class-descriptor class="w4b.com.cassagest.db.Docassiste" table="DOCASSISTE">::

<collection-descriptor name="docassisteList" element-class-ref="w4b.com.cassagest.db.Docassiste" auto-update="false" auto-delete="false" proxy="false" auto-retrieve="false">
            <inverse-foreignkey field-ref="dbcodass"/>
</collection-descriptor>
The method getCollectionByQuery() work fine!!


Any ideas?

Thanks, Alessandro

Armin Waibel ha scritto:
Hi Alessandro,

Alessandro Vincelli wrote:

Hi,

I encountered a weird problem in simply retrieving objects mapped to the following table:

<class-descriptor class="w4b.com.cassagest.db.Docassiste" table="DOCASSISTE"> <field-descriptor name="dbprogre" primarykey="true" default-fetch="true" autoincrement="true" sequence-name="public.docassiste_dbprogre_seq" column="DBPROGRE" jdbc-type="INTEGER"/> <field-descriptor name="dbcodass" default-fetch="true" column="DBCODASS" jdbc-type="VARCHAR"/> <field-descriptor name="dbdocume" default-fetch="true" column="DBDOCUME" jdbc-type="INTEGER"/> <field-descriptor name="dbobblig" default-fetch="true" column="DBOBBLIG" jdbc-type="VARCHAR"/> <field-descriptor name="dbannota" default-fetch="true" column="DBANNOTA" jdbc-type="CHAR"/> <reference-descriptor name="dbcodassRef" class-ref="w4b.com.cassagest.db.Passiste" auto-update="false" auto-delete="false" proxy="false">
            <foreignkey field-ref="dbcodass"/>
        </reference-descriptor>
<reference-descriptor name="dbdocumeRef" class-ref="w4b.com.cassagest.db.Docuassist" auto-update="false" auto-delete="false" proxy="false">
            <foreignkey field-ref="dbdocume"/>
        </reference-descriptor>
    </class-descriptor>

The problem seems to be with one of the two foreign keys (dbcodass), which is a VARCHAR.

If I fill the dbcodass field with numeric values, everything works fine: I am able to retrieve a collection of Docassiste objects using getCollectionByQuery().

The problem comes when I really use the dbcodass field as a VARCHAR field. As soon as I populate the table with alphanumeric values, nothing works anymore. getCollectionByQuery throws the following exception:


seems that OJB verify the object as Integer. This sounds like a bug. I will try to reproduce your issue in OJB test-suite. Could you open an issue in JIRA and add the mappings for Docassiste and Passiste too?

regards,
Armin


> org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1632)
 >
 >         at
> org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(Unknown
 > Source)


QUERY BY CRITERIA _______ QueryByCriteria from class w4b.com.cassagest.db.Docassiste where [DBCODASS = PR1]
java.lang.NumberFormatException: For input string: "PR1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:468)
        at java.math.BigInteger.<init>(BigInteger.java:314)
        at java.math.BigInteger.<init>(BigInteger.java:447)
        at java.math.BigDecimal.<init>(BigDecimal.java:216)
at org.postgresql.jdbc2.AbstractJdbc2Statement.numericValueOf(AbstractJdbc2Statement.java:1477) at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1520)
        at


(full stacktrace below)


Any ideas?


Alessandro





















QUERY BY CRITERIA _______ QueryByCriteria from class w4b.com.cassagest.db.Docassiste where [DBCODASS = PR1]
java.lang.NumberFormatException: For input string: "PR1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:468)
        at java.math.BigInteger.<init>(BigInteger.java:314)
        at java.math.BigInteger.<init>(BigInteger.java:447)
        at java.math.BigDecimal.<init>(BigDecimal.java:216)
at org.postgresql.jdbc2.AbstractJdbc2Statement.numericValueOf(AbstractJdbc2Statement.java:1477) at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1520) at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1632) at org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(Unknown Source) at org.apache.ojb.broker.platforms.PlatformPostgreSQLImpl.setObjectForStatement(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.bindStatementValue(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.bindStatement(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.bindSelectionCriteria(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.bindStatement(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.bindStatement(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source) at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source) at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source) at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorByQuery(Unknown Source) at org.apache.ojb.broker.accesslayer.BasePrefetcher.prefetchRelationship(Unknown Source) at org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(Unknown Source) at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source) at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source) at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown Source) at w4b.com.cassagest.dao.PassisteDAO.retrieve(w4b.com.cassagest.dao.PassisteDAO:53)
        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:324)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:230) at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244) at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:1134) at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190) at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138) at org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121) at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244) at org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.callFunction(FOM_JavaScriptInterpreter.java:758) at org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:138) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46) at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92) at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234) at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:248) at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46) at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92) at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234) at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:248)
        at org.apache.cocoon.Cocoon.process(Cocoon.java:679)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1154)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)














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





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

Reply via email to