This looks like a mapping problem!
please post repository and the code of the Customers class.

cheers,
Thomas

Anders Hermansen wrote:
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]>


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

Reply via email to