سؤال

لديّ فئة كيان تسمى "المجموعة" ويحذرني NetBeans "اسم الجدول الكيان هو كلمة رئيسية في Java محجوزة QL".

هناك حالة مماثلة هي استخدام الكلمات الرئيسية SQL المحجوزة.

هل سيتم هروب هذا الاسم؟ هل سيقوم استخدام اسم جدول مختلف بحل المشكلة @table (name = "otherName"). أم يجب أن أعيد تسمية الفصل؟

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

المحلول

هل سيتم هروب هذا الاسم؟

هنالك لا شيئ في مواصفات JPA التي تقول ذلك ، إذا كان مزودك قد فعل ذلك ، فهذا مزود محدد.

هل سيحل استخدام اسم جدول مختلف المشكلة @table (name = "othersname")

من الواضح ، سيكون (طالما أنك لا تستخدم كلمة رئيسية أخرى محجوزة بالطبع). ولكن إذا كنت تستخدم مزود JPA 2.0 ، فهناك طريقة قياسية للحصول على اسم كائن DB هرب ، مع عروض أسعار مزدوجة:

@Table(name="\"Group\"")

في JPA 1.0 ، لا يوجد شيء معياري ، وهذا يعتمد على مزود JPA الخاص بك. على سبيل المثال ، يستخدم Hibernate backticks:

@Table(name="`Group`")

أم يجب أن أعيد تسمية الفصل؟

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

نصائح أخرى

ليس عليك إعادة تسمية الفصل - ولا ينبغي عليك - الاسم الذي اخترته يعكس مجالك بأفضل طريقة ، ويجب ألا تغيره بسبب قيود الأداة أو الإطار ، في حالة توفر الأداة/الإطار طريقة لتجنب "الصدام". يوفر JPA مثل هذه الطريقة.

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