قم بتحميل مجموعة من العتاد مع Google App Engine DataStore

StackOverflow https://stackoverflow.com/questions/1500643

  •  19-09-2019
  •  | 
  •  

سؤال

أنا أستخدم DATASTORE محرك تطبيق Goole مع Java ومحاولة تحميل كائن مع قائمة المعاملة. في كل مرة قمت بتحميل الكائن، تكون القائمة فارغة. الكائن هو

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class ObjectToSave {

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long id;

    @Persistent
    private List<AnEnum> anEnumList;

    //public getters and setters
}

العادة بسيطة

public enum AnEnum {
    VALUE_1,
    VALUE_2;
}

الرمز لحفظه هو

ObjectToSave objectToSave = new ObjectToSave();
List<AnEnum> anEnumList = new ArrayList<AnEnum>();
anEnumList.add(AnEnum.VALUE_1);
objectToSave.setAnEnumList(anEnumList);
PersistenceManager pm = pmfInstance.getPersistenceManager();
try {
    pm.makePersistent(objectToSave);
} finally {
    pm.close();
}

الرمز لتحميله هو

PersistenceManager pm = pmfInstance.getPersistenceManager();
try {
    Key key = KeyFactory.createKey(ObjectToSave.class.getSimpleName(), id);
    ObjectToSave objectToSave = pm.getObjectById(ObjectToSave.class, key);
} finally {
    pm.close();
}

يمكنني عرض البيانات في DataStore باستخدام http: // localhost: 8080 / _ah / admin ويمكن أن نرى قائمتي قد تم حفظها ولكنها ليست موجودة عند تحميل الكائن.

لقد قمت بإنشاء مشروعي باستخدام البرنامج المساعد Eclipse ولم أخدر أي تغييرات على إعدادات DataStore بقدر ما أعرف. فلماذا معرف قائمة تعيني فارغة؟

هل كانت مفيدة؟

المحلول

نعم، لكن حقل القائمة الخاصة بك ليس في مجموعة جلب الافتراضية عند التحميل حتى لا يتم تحميل المنتج. اقرأ مجموعات جلب jdo. وبعد يمكنك إضافته إلى DFG، أو تمكين مجموعة جلب مخصصة، أو مجرد "Touch" الحقل قبل إغلاق PM.

-DataNucleus.)

نصائح أخرى

كيف تخلق مثيل ObjectTosave؟ القيمة الافتراضية لجميع أنواع المراجع المتغيرة للمثيل لاغية، لذلك ما لم يكن لديك رمز (إضافي) لإنشاء مثيل List<AnEnum> وتعيينه ل anEnumList, ، ستكون غير متوقعة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top