DataNucleus: كيف يمكنني إجراء الإجراءات تلقائيا عند بدء معاملة؟
-
11-09-2019 - |
سؤال
النظر في الحصول على طلب باستخدام DataNucleus مع هيكل الثبات التالي:
لديك فئة لديها سمات اثنين مثل خلقت (التاريخ و اخر تحديث (التاريخ): كيف تقوم تلقائيا بملء تلك السمات بالقيم المناسبة عند ارتكاب كائن من هذه الفئة؟ القيم المناسبة ستكون إعداد كليهما، خلقت و اخر تحديث إلى الوقت الحالي عندما يتم إدخال كائن في قاعدة البيانات والتحديث فقط اخر تحديث عندما تغيرت.
المحلول
أنا أحسب نفسي الآن.
تحتاج إلى إنشاء instancelifecyclelistener....
public class BasicEntityLifecycleListener implements StoreLifecycleListener {
public void postStore(InstanceLifecycleEvent evt) {
}
public void preStore(InstanceLifecycleEvent evt) {
if((PersistenceCapable)evt.getSource() instanceof BasicEntity) {
BasicEntity obj = (BasicEntity)evt.getSource();
Date now = new Date();
if(JDOHelper.isNew(obj))
obj.setCreated(now);
obj.setLastUpdate(now);
}
}
}
ثم سجلها داخل you bersistencemanager ...
PersistenceManager pm = pmf.getPersistenceManager();
pm.addInstanceLifecycleListener(new BasicEntityLifecycleListener(), null);
لقد وجدت الحل في DataNucleus Access Plaftorn دليل التي لم أدركتها حتى الآن. يبدو الدليل عبر الإنترنت مجمعا بعض الشيء بالنسبة لي.
لا تنتمي إلى StackOverflow