سؤال

هل من الممكن تجاوز @GeneratedValue بالنسبة للمعرف في وضع السبات، لدينا حالة نرغب في معظم الأوقات في تعيين المعرف باستخدامها GeneratedValue, ، ولكن في بعض الحالات قد ترغب في تعيين المعرف يدويًا.

هل هذا ممكن ان يحدث؟

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

المحلول

أعلم أنه يمكنك القيام بذلك في مواصفات JPA، لذا يجب أن تكون قادرًا على القيام بذلك في وضع السبات (باستخدام التعليقات التوضيحية JPA+).

إذا قمت فقط بملء حقل المعرف الخاص بالنموذج المستمر الجديد الذي تقوم بإنشائه، فعند "دمج" هذا النموذج في EntityManager، فإنه سيستخدم المعرف الذي قمت بتعيينه.

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

لذلك، ربما يمكنني معرفة المكان الذي قد ترغب في أن يتمكن المستخدم من تحديد معرف فيه، ولكن بعد ذلك تحتاج إلى التقاط الاستثناء المحتمل (معرف مكرر) الذي قد يأتي في المستقبل.

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