Hi,

I have a persistent class (contains all persistent fields) ST_Person.
I have a base implementation (implements business methods) PersonBaseImpl that inherits from ST_Person.


I wrote in the repository an extent tag for this but I don't wrote a tag for PersonBaseImpl. I think this was the problem.
Must we declare such a class ?


I do this but I get the following error.
Is something missing in my code ?
What I'm doing wrong?

Best Regards.

----------------
java.lang.NullPointerException
at org.apache.ojb.broker.metadata.ClassDescriptor.getPkFields(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.getIdentityFromResultSet(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at com.sun.jdori.common.query.BasicQueryResult.<init>(Unknown Source)
at org.apache.ojb.jdori.sql.OjbStoreManager.newQueryResult(Unknown Source)
at com.sun.jdori.common.query.QueryImpl.executeWithArray(Unknown Source)
at ....
[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: null
java.lang.NullPointerException
at org.apache.ojb.broker.metadata.ClassDescriptor.getPkFields(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.getIdentityFromResultSet(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at com.sun.jdori.common.query.BasicQueryResult.<init>(Unknown Source)
at org.apache.ojb.jdori.sql.OjbStoreManager.newQueryResult(Unknown Source)
at com.sun.jdori.common.query.QueryImpl.executeWithArray(Unknown Source)
at ....




Danilo Tommasina wrote:
Please post your repository.xml descriptor, it seems that you have a loop in your config.

bye
danilo

Hi,

I didn't have any feedback about my last mail and I don't know how to solve this problem.

As I'm not sure JDO queries work fine, I test the following piece of code. But I always got a "java.lang.StackOverflowError" exception.
( Before this query, classes were enhanced with a jdo file - I want to use the OJB JDO api).



I really need to run OJB queries. Can anyone help me?


Thanks,
Christophe.


My code : ==========

        // Get an OJB Broker
        org.apache.ojb.broker.PersistenceBroker broker = null;
        try
        {
            broker = org.apache.ojb.broker.PersistenceBrokerFactory.
                        defaultPersistenceBroker();
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }

        // Create the OJB query
        org.apache.ojb.broker.query.Query q = null;
        org.apache.ojb.broker.query.Criteria crit = null;
        java.util.Collection results = null;


crit = new org.apache.ojb.broker.query.Criteria(); crit.addEqualTo("_firstName_state", first_name); crit.addEqualTo("_lastName_state", last_name);

org.apache.ojb.broker.query.QueryFactory.newQuery(demo1.ST_Person.class,crit);

        try
        {
            // ask the broker to retrieve the Extent collection
            results = broker.getCollectionByQuery(q);
            // now iterate over the result
            java.util.Iterator iter = results.iterator();
            while (iter.hasNext())
            {
                System.out.println(iter.next());
            }
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }

The error output :
==================
java.lang.StackOverflowError
at org.apache.ojb.broker.metadata.DescriptorRepository.discoverDescriptor(Unknown Source)
at org.apache.ojb.broker.metadata.DescriptorRepository.getDescriptorFor(Unknown Source)
at org.apache.ojb.broker.metadata.DescriptorRepository.getDescriptorFor(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
at org.apache.ojb.broker.query.QueryFactory.getExtentClasses(Unknown Source)
....










-- Christophe Demarey, Research engineer OpenCCM project - http://www.objectweb.org/openccm GOAL Team - CNRS/USTL/LIFL - http://www.lifl.fr/GOAL/ Universite des Sciences et Technologies de Lille LIFL - UMR CNRS 8022- Batiment M3 59655 Villeneuve d'Ascq Cedex - FRANCE Phone: +33 (0)32043 4728 Fax : +33 (0)32043 6566
<!-- Please keep user defined mappings in this file only
     to avoid mixing user defined and system mappings. -->
<!-- Mapping of User defined classes starts here -->

   <class-descriptor
     class="demo1.ST_Address"
     table="ADDRESS"
   >
      <field-descriptor
         name="_addressLine1_state"
         column="ADR1"
         jdbc-type="VARCHAR"
         primarykey="true"
      />
      <field-descriptor
         name="_addressLine2_state"
         column="ADR2"
         jdbc-type="VARCHAR"
      />
      <field-descriptor
         name="_city_state"
         column="CITY"
         jdbc-type="VARCHAR"
      />
      <field-descriptor
         name="_zip_state"
         column="ZIP"
         jdbc-type="VARCHAR"
      />
      <field-descriptor
         name="_sh_rid"
         column="SH_RID"
         jdbc-type="VARCHAR"
      />
   </class-descriptor>


   <class-descriptor
     class="demo1.PersonBaseImpl"
     table="PERSON"
   >
   </class-descriptor>

   <class-descriptor
     class="demo1.ST_Person"
     table="PERSON"
   >
      <extent-class class-ref="demo1.PersonBaseImpl" />
      <field-descriptor
         name="_firstName_state"
         column="FIRST_NAME"
         jdbc-type="VARCHAR"
         primarykey="true"
      />
      <field-descriptor
         name="_lastName_state"
         column="LAST_NAME"
         jdbc-type="VARCHAR"
         primarykey="true"
      />
      <field-descriptor
         name="_age_state"
         column="AGE"
         jdbc-type="INTEGER"
      />
      <field-descriptor
         name="_adress_state"
         column="ADDRESS"
         jdbc-type="VARBINARY"
      />
      <field-descriptor
         name="_sh_rid"
         column="SH_RID"
         jdbc-type="VARCHAR"
      />
   </class-descriptor>

<!-- Mapping of User defined classes ends here -->

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

Reply via email to