هل يمكنني الاستمرار في الكائنات الفرعية في معالج @بريبيرسيست من فئة الأم?(تجسيد 3. 1 ب 1)

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

سؤال

أنا جديدة على تشييء ومحاولة تنفيذ علاقة واحد لكثير.لدي كيانات التنظيم والكيان شخص.المنظمة لديها @Transient الممتلكات قائمة< شخص > اتصل الناس.شخص الطبقة لديه @Parent الممتلكات مفتاح< التنظيم > مفتاح التنظيم التي يمكنني تعيين عبر اضع.

أود أن تستمر الاتصالالناس في @PrePersist معالج التنظيم.من أجل القيام بذلك ، أحتاج إلى تعيين مفتاح الوالدين شخصيا.

ويكي هنا يقول: "لا يمكنك تحديث الحقول @إد أو @ الأصل في رد اتصال @بريبيرسيست;بحلول هذا الوقت ، تم بالفعل إنشاء الكيان منخفض المستوى بمفتاح كامل بحيث يمكن تمريره كمعلمة اختيارية."

لست متأكدا من أن هذه لا تزال معلومات دقيقة ?لأن مفتاح com.google.appengine.api.datastore.Entity الكائن الذي أحصل عليه PrePersist معالج لديه المفتاح الذي يقول حرفيا"لا معرف حتى الآن".

كيف يمكنك تنفيذ هذا ?

شكرا لك!

تحديث في نوفمبر 17, 2011:

في الهدف الجديد 4 سنكون قادرين على القيام بعلاقات شبه تلقائية مثل هذه:

class Beastie {
   @Parent
   @Load
   ParentThing parent;

   @Id Long id;

   @Load({"bigGroup", "smallGroup"})
   SomeThing some;

   @Load("bigGroup")
   List<OtherThing> others;

   @Load
   Ref<OtherThing> refToOtherThing;

   Ref<OtherThing> anotherRef;  // this one is never fetched automatically
}

هنا تتطور وثيقة تصميم الإصدار الجديد.

هذه أخبار كبيرة. غصين مؤلف, جون باترسون, انضم مشروع تشييء اليوم.

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

المحلول

جلالة الملك ، يبدو أنك بحاجة إلى جعل داو أمام نماذج البيانات الخاصة بك.لذلك ، سوف تكون قادرة على القيام بشيء من هذا القبيل:

Organization organization = ...
List<Person> people = ...
ob.put(organization)
for (Person person: people) {
    person.organizationKey = organization.getKey();
    ob.put(person);
    organization.contactPeopleKeys.add(person.getKey());
}
ob.put(organization)

غاي + تشييء يتطلب الكثير من الشيء للتعامل مع التعليمات البرمجية الخاصة بك،لذلك هو شيء شائع

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