has multiple <extent-class>. I have a primary key "valueId" which I try to increment with the call broker.serviceSequenceManager().getUniqueValue(field);
This call fails with a NullPointerExdeption. It works in another case where the class isn't polymorphic. I had a work around
in 0.9.8 to handle this case:
/**
try {
// work around problem in OJB 0.9.8
ClassDescriptor cld = broker.getClassDescriptor(clazz);
if ( (cld.isAbstract() || cld.isInterface()) && cld.isExtent())
clazz = (Class)cld.getExtentClasses().get(0);
return broker.getUniqueId(clazz, fieldName);
} catch (org.apache.ojb.broker.PersistenceBrokerException e) {
cat.error("Can't get ID from broker: " + clazz.getName() + " " + fieldName, e);
// System.exit(1);
return 0;
}
*/
but I thought this should have been fixed. The method getUniqueId isn't any more.
I did make a change along the lines above to redefine clazz and it seems to work.
Is this the way I should do it, or am I missing a new call somewhere?
Here is a segment of my repository_user.xml file:
<!-- Class description for all classes implementing gov.lanl.COAS.ObservationValue_
<class-descriptor class="gov.lanl.COAS.ObservationValue_"> <extent-class class-ref="gov.lanl.COAS.Multimedia_"/> <extent-class class-ref="gov.lanl.COAS.NoInformation_"/> <extent-class class-ref="gov.lanl.COAS.Numeric_"/> <extent-class class-ref="gov.lanl.COAS.ObservationId_"/> <extent-class class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/> <extent-class class-ref="gov.lanl.COAS.QualifiedPersonId_"/> <extent-class class-ref="gov.lanl.COAS.Range_"/> <extent-class class-ref="gov.lanl.COAS.String_"/> <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/> <extent-class class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/> <extent-class class-ref="gov.lanl.COAS.Empty_"/> </class-descriptor>
<class-descriptor
class="gov.lanl.COAS.String_"
table="OjbString_"
isolation-level="read-uncommitted"
>
<field-descriptor id="1"
name="valueId"
jdbc-type="INTEGER"
column="valueId"
primarykey="true"
/>
<field-descriptor id="2"
name="string"
jdbc-type="LONGVARCHAR"
column="String"
/>
</class-descriptor>David W. Forslund [EMAIL PROTECTED] Computer and Computational Sciences http://www.acl.lanl.gov/~dwf Los Alamos National Laboratory Los Alamos, NM 87545 505-663-5218 FAX: 505-663-5225
