Also make sure that you use Integer instead of int, Double instead of
double, etc. since the latter cannot be set to null. Mujtaba is right -- App
Engine's datastore is built on top of BigTable which you can think of
(simplistically) as a large hash table, so you can freely add properties;
these will be set to null for those entities that don't have data associated
with these property names.
Be advised that removing field from a JDO or JPA class does not
automatically clear the data associated with the corresponding properties in
the datastore.

- Jason

On Mon, Aug 17, 2009 at 12:28 PM, victor <[email protected]> wrote:

>
> I tried what you suggested and I get the following exception:
>
> Datastore entity with kind ...has a null property named
> voteDownCount.  This property is mapped to ..., which cannot accept
> null values.
>
> It looks like I have some missing parameters in the
> @Persistentannotation? I was thinking it would be the "nullValue"
> parameter but it does not seem to be the case.
> Does anyone know what would this be?
>
> Thanks!
>
>
> On Aug 16, 11:48 pm, Mujtaba Hassan <[email protected]> wrote:
> > This issue has been discussed on the forum.
> >
> > Just add your the new field in the ClassA and start your development, the
> > old records will store null associated with the new field.
> >
> > On Mon, Aug 17, 2009 at 8:30 AM, victor <[email protected]> wrote:
> >
> > > This seems to be a common use case but I cannot seem to find the
> > > answer to this in the forum. Let us say I have defined a persistent
> > > class:
> > > class A {
> > >  private String field;
> > >  //get set methods removed for clarity
> > > }
> >
> > > Supposed that this class worked out fine and I have already deployed
> > > my app and populated my tables with it. But then it just occurred to
> > > me that I have to add a new field:
> > > class A {
> > >  private String field;
> > >  private String newField;
> > >  //get set methods removed for clarity
> > > }
> >
> > > What would be the best way to tackle this scenario? Can I just extend
> > > "A" instead? -- but class extension seems to be poorly supported in
> > > this JDO implementation. How do I migrate my old class versions?
> >
> > > I was thinking of putting class version on my classes and everytime I
> > > update it I would do the following steps:
> > > 1) Change the version ID of the class
> > > 2) Migrate all the tables in the table by retrieving it, changing the
> > > version ID, resave it with the new class.
> >
> > > Any pointers would be helpful.
> >
> > > Thanks!
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to