Hi Andy,

It seems that jpox maps Object as serialized by default. Where there is no serialized or embedded attribute on the field, we map to a FK column, e.g. OBJECT102 BIGINT REFERENCES SIMPLE_CLASS, giving a jpox error:

An attempt was made to put a data value of type 'byte[]' into a data value of type 'BIGINT'.

SimpleInterface, which we map identically to Object, works fine.

-- Michelle

Andy Jefferson wrote:

What if we define a new attribute on field called field-type, and for
the TCK we put in "...SimpleClass"? Would that allow you to map it?

It certainly sounds doable (not looked at the code ...).

OK, JPOX now supports java.lang.Object as FCO. It's not currently using the proposed <field> attribute to notate which classes will actually be stored in that field, instead using
<field name="myObjectField>
<extension vendor-name="jpox" key="implementation-classes" value="comma-separated-list-of-PC-classnames-that-can-be-stored-here"/>
</field>

When we have an agreed JDO2 attribute, I'll swap it over to that.

The TCK now gives exceptions of the following style, due to absence of possible classes against each Object (or Collection of Object) field :- javax.jdo.JDOUserException: Field "org.apache.jdo.tck.pc.fieldtypes.ArrayListCollections.ArrayListOfObject2" is declared as a reference type (interface/Object) but no implementation classes of "java.lang.Object" have been found!

HTH

Reply via email to