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: Support java.lang.Object as FCO
Date Thu, 18 Aug 2005 06:26:59 GMT
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

Mime
View raw message