Hi Craig,
> > Well we interpret all types as serialized="false", but in section
> > 18.14 of the
> > spec "java.lang" types (which Object is) are to be embedded="true" by
> > default. So we interpret this as serialising the Object into the
> > table of the
> > class, into a BLOB column.
>
> I tried to be more explicit about this in the Proposed Final Draft,
> to say that embedded="true" doesn't mean serialized but embedded
> column by column. Just like embedded PC instances.
OK, but the issue here is whether "java.lang.Object" defaults to
embedded="true" or embedded="false". The wording at the start of the section
18.14 Embedded can be interpreted 2 ways. That java.lang.Object is embedded
by default, or it isn't.
Looking at some of the JDO1 books, Object is *not* embedded by default, so
I've updated JPOX to reflect this (in last nights build - 18/08/2005). This
gets around the immediate issue that Michelle raised.
When we have an Object field that is marked as embedded="true" JPOX will
currently serialise it into a single column - since we don't support
embedding it column by column into the owning table. I looked at the PFD and
couldn't decide if this is valid or not. You're saying that we should embed
the Object column-by-column.
We have 2 situations
<field name="myObjectField" embedded="true"/>
This one we treat as serialised currently since no embedded definition is
available
<field name="myObjectField">
<embedded>
...
</embedded>
</field>
This we do not support since the Object field could have multiple
"implementations" stored there, so the fields will vary. For the same reason
we don't support the same situations with interface fields
--
Andy