db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Jefferson <a...@jpox.org>
Subject Re: Embedding fields of non-persistent types even when field-type is used
Date Sat, 28 Jul 2007 05:50:02 GMT
Hi Craig, Michelle,

> The problem is that if you declare the PI* address property in
> PICompany as
> PIAddress getAddress()
> void setAddress(PIAddress)
> then it doesn't implement ICompany any more, since you also need
> these from the ICompany interface:
> IAddress getAddress()
> void setAddress(IAddress)
> And of course these are the methods that the e.g. FC classes
> implement by casting the input IAddress to FCAddress. Which is what
> we want the generated PICompanyImpl to do because we specify that the
> type of the field is PIAddress.

There are still places where there is no "types" (annotations) or "field-type" 
(XML) specified on overridden interface fields. I'll start from the one 
that "companyPMInterface.conf" complains about

PIInsurance has no <property field-type="..."> on field "employee".
PIDSInsurance has no @Persistent(types=) on field "employee".

Fix those and re-run, you then get the error on
PIEmployee "dentalInsurance", "medicalInsurance", "department", "fundingDept", ...
PIDSEmployee etc

When those are fixed there are likely some others.

Only when *all* of these are added can we address if JPOX can cope with that 
structure or not. As it is currently there are persistent properties that are 
not persistent. Maybe JPOX will cope ?

PS. Let's face it, the persistent-interface structure is an artificially 
constructed case that is no longer representative of the real world, and 
staring at it for several minutes causes madness to set in ...

Andy  (Java Persistent Objects - http://www.jpox.org)

View raw message