2010-06-11 5 views
1

Donc, si j'ai une classe dont j'ai un numéro enregistré dans une banque de données, puis que j'essaie d'ajouter un champ plus tard, comment puis-je empêcher la rupture de tous mes objets précédents? Existe-t-il un moyen de définir rétroactivement ces champs afin qu'ils ne soient pas nuls?Ajouter un champ persistant à une classe App Engine Datastore?

J'utilise JDO.

+1

Java ou Python? –

Répondre

0

Cela dépend de la façon dont vous accédez au magasin de données. Quel runtime (python/java) et quelle API utilisez-vous pour accéder au datastore? Le magasin de données lui-même est schemaless, donc il ne se soucie pas de ce qui est ou n'est pas dans une certaine entité. Du côté Java, si vous utilisez l'API de bas niveau de données, vous n'aurez aucun problème à accéder aux «anciennes» entités et à ajouter les données que vous souhaitez. Toutefois, si vous utilisez JDO ou JPA pour accéder au magasin de données, vous risquez d'obtenir des erreurs d'accès aux entités dont les données sont manquantes.

+0

Java. J'utilise JDO. J'obtiens des exceptions de pointeur nulles sur les anciennes entités si j'ajoute un nouveau champ. – Joren

+0

à droite. C'est pourquoi vous devez utiliser l'API de bas niveau de données. Vous remarquerez que j'ai dit que vous pourriez avoir des erreurs si vous essayiez d'utiliser JDO pour le faire :) –

Questions connexes