Я думаю, что реализация JDO в AppEngine хранит собственные отношения в форме родительских ключей.Когда вы делаете myImageA дочерним по отношению к recipe1, appengine устанавливает для родительского объекта сущности MyImage recipe1.
Я не эксперт в этом, но я предполагаю, что когда вы делаете myImageB дочерним по отношению к recipe1,appengine просто устанавливает родителя другого объекта MyImage в recipe1.Когда он пытается получить myImage
, он ищет изображение с родителем recipe1
и все еще находит myImageA
, хотя myImageB
все еще сидит там.
Опять яугадывание.Хотелось бы, чтобы была опция «Угадай».
TL; DR : Я бы попытался удалить myImageA
явно перед установкой myImageB
.Это нарушило бы все остальные ссылки на myImageA
, но если вы надеетесь использовать его в других контекстах, отношения с собственником в любом случае неуместны.
Этот путаница такого рода является причиной того, что я вообще отбросил отношения JDO и отношения с владельцеми научился любить объективировать.Они также ограничивают ваши параметры для групп объектов, что добавляет еще одно измерение тумана.