كيفية اكتشاف المعرف الذي تم إنشاؤه تلقائيًا لكائن جديد عند استخدام JPA؟

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

سؤال

لديّ سمة تم شرحها باستخدام ID. سيتم إنشاء المعرف تلقائيًا عند استمرار الكائن. هذا يعني أن قيمة الهوية لم يتم تعريفها قبل أن أستمر في الكائن. بعد استمراره ، يحتوي على معرف (في قاعدة البيانات) ، ولكن للأسف لا يزال الحقل لاغالًا طالما أنني لا أعيد تحميله من DB. هل هناك أي طريقة سهلة لمعرفة المعرف الذي تم إنشاؤه؟ أو أفضل: لتكوين أنه سيتم كتابته في الحقل؟

شكرا مقدما

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

المحلول

يتم تعيين المعرف بعد التدفق. على افتراض Foo الكيان لديه id السمة المشروحة مع المعيار @Id @GeneratedValue التعليقات التوضيحية ، يعمل الرمز التالي:

Foo foo = new Foo();
//...
em.persist(foo);
em.flush();
assert foo.getId() != null;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top