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]

Reply via email to