Hi Alexander, I don't now if this will solve your problem, but in current CVS version Identity class (and some dependend classes) changed to populate both > object real class = null; > pkvalues = 10; > object class = IBaseInterface. objectRealClass and objectClass (means topLevelClass).
Give it a try ;-) regards, Armin ----- Original Message ----- From: "Alexander Prozor" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, June 12, 2003 8:04 AM Subject: Inheritance > Hi Experts, > We have object hierarchy : > base interface IBaseInterface, > and classes that implements it Class0, Class1, Class2 > Class0 has reference to the Class1 > in the tables for these classes we got identical value of primary > keys. (i.e. Class1 pk = 10 and Class2 pk = 10 ). > when we try to search for Class0 instances via ODMG OQL query. > something like this: > select classes from Class0 where name = 'testClass' > in PersistentBrokerImpl.getReferencedObject > Ojb takes Top level Class for Class1 ( > DescriptionRepository.getTopLevelClass()). > and Identity: > object real class = null; > pkvalues = 10; > object class = IBaseInterface. > > and trying to set Class2 object instead of Class1. > So we got exception: > > java.lang.IllegalArgumentException: field type mismatch > at org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReference(Persi stenceBrokerImpl.java:1049) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReferences(Pers istenceBrokerImpl.java:1027) > at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt erator.java:462) > at org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:270) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Pe rsistenceBrokerImpl.java:1418) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Pe rsistenceBrokerImpl.java:1468) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Pe rsistenceBrokerImpl.java:1429) > at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu ery(DelegatingPersistenceBroker.java:292) > at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(OQLQueryImpl.java:339) > > How can we set real class? > Maybe it's better to use another query ( PersistentBroker API ). > > -- > Best regards, > Alexander mailto:[EMAIL PROTECTED] > > > --------------------------------------------------------------------- > 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]
