Hi, we are using a default cache implementation defined in OJB.properties and for some classes a different cache implementation, which we declare in the class-descriptor. According to the repository.dtd we can include an object-cache element only for concrete classes with at least one field-descriptor element:
<!ELEMENT class-descriptor ((documentation?, extent-class+, attribute*) | (documentation?, object-cache?, extent-class*, field-descriptor+, reference-descriptor*, collection-descriptor*, index-descriptor*, attribute*, insert-procedure?, update-procedure?, delete-procedure?))> Conequently, since we are using interfaces and concrete implementations, our class descriptors looked like this: <class-descriptor class="de.lexcom.user24.client.model.EnvironmentIF"> <extent-class class-ref="de.lexcom.user24.client.model.EnvironmentImpl" /> </class-descriptor> <class-descriptor class="de.lexcom.user24.client.model.EnvironmentImpl" table="environments"> <object-cache class="de.lexcom.common.ojb.ObjectCacheHardImpl" /> <field-descriptor name="name" column="name" jdbc-type="VARCHAR" /> ... Note that according to the DTD we could declare an object-cache element only in the second descriptor for the implementation class. Now we noticed that in some circumstances, OJB would use the default cache declared in OJB.properties for our Environment objects, which led to problems with object identity. We then tried the naive fix and added an object-cache element also to the first class-descriptor. And, alas, everything worked fine. So it looks a bit as if the class-descriptor DTD should in fact be <!ELEMENT class-descriptor ((documentation?, object-cache?, extent-class+, attribute*) | (documentation?, object-cache?, extent-class*, field-descriptor+, reference-descriptor*, collection-descriptor*, index-descriptor*, attribute*, insert-procedure?, update-procedure?, delete-procedure?))> Is this correct, or is there a reason not to allow for an object-cache element for abstract classes. Thanks, Gerhard --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]