Hello,

I'm still fighting to get this ojb beast to work, and I now have it
actually working in some cases :)

But if I try to fetch data from a table which has foreign keys, I get
some trouble.

The error message is:
[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: Unable to build
object instance (MAYBE you don't have a constructor available):class
no.yoyo.pdfmaker.ojb.Customers: Error setting field:id in
object:no.yoyo.pdfmaker.ojb.Customers

I have attached the test code and the exception.

Anybody knows what is going wrong?

Do I need to supply more info? repository.xml?


Anders

--
Anders Hermansen
YoYo Mobile as
package no.yoyo.pdfmaker;

import no.yoyo.pdfmaker.ojb.*;
import org.apache.ojb.broker.*;
import org.apache.ojb.broker.query.*;
import java.util.*;

public class TestOjb {
    public static void main(String[] args) {
        PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();

        // This block works
        Query query1 = QueryFactory.newQuery(Roles.class, new Criteria());
        Collection allRoles = broker.getCollectionByQuery(query1);
        Iterator iter1 = allRoles.iterator();
        while (iter1.hasNext()) {
            Roles role = (Roles) iter1.next();
            System.out.println("Role: " + role.getRole());
        }
        
        // This does not
        Query query2 = QueryFactory.newQuery(Customers.class, new Criteria());
        Collection allCustomers = broker.getCollectionByQuery(query2);
        Iterator iter2 = allCustomers.iterator();
        while (iter2.hasNext()) {
            Customers cust = (Customers) iter2.next();
            System.out.println("Customer: " + cust.getName());
        }
    }
}

java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:140)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:228)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowReaderDefaultImpl.java:108)
        at 
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:402)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:206)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)
rethrown as org.apache.ojb.broker.metadata.MetadataException: Error setting field:id 
in object:no.yoyo.pdfmaker.ojb.Customers
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:156)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:228)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowReaderDefaultImpl.java:108)
        at 
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:402)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:206)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)
Caused by: java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:140)
        ... 10 more
rethrown as org.apache.ojb.broker.PersistenceBrokerException: Unable to build object 
instance (MAYBE you don't have a constructor available):class 
no.yoyo.pdfmaker.ojb.Customers: Error setting field:id in 
object:no.yoyo.pdfmaker.ojb.Customers
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:234)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowReaderDefaultImpl.java:108)
        at 
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:402)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:206)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)
Caused by: org.apache.ojb.broker.metadata.MetadataException: Error setting field:id in 
object:no.yoyo.pdfmaker.ojb.Customers
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:156)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:228)
        ... 9 more
Caused by: java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:140)
        ... 10 more
java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:140)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:228)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowReaderDefaultImpl.java:108)
        at 
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:402)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:206)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)
rethrown as org.apache.ojb.broker.metadata.MetadataException: Error setting field:id 
in object:no.yoyo.pdfmaker.ojb.Customers
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:156)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:228)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowReaderDefaultImpl.java:108)
        at 
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:402)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:206)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)
Caused by: java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:140)
        ... 10 more
rethrown as org.apache.ojb.broker.PersistenceBrokerException: Unable to build object 
instance (MAYBE you don't have a constructor available):class 
no.yoyo.pdfmaker.ojb.Customers: Error setting field:id in 
object:no.yoyo.pdfmaker.ojb.Customers
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:234)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowReaderDefaultImpl.java:108)
        at 
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:402)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:206)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)
Caused by: org.apache.ojb.broker.metadata.MetadataException: Error setting field:id in 
object:no.yoyo.pdfmaker.ojb.Customers
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:156)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(RowReaderDefaultImpl.java:228)
        ... 9 more
Caused by: java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(PersistentFieldDefaultImpl.java:140)
        ... 10 more
Exception in thread "main" java.util.NoSuchElementException
        at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:221)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1276)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1405)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1431)
        at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1418)
        at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:306)
        at no.yoyo.pdfmaker.TestOjb.main(TestOjb.java:23)

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

Reply via email to