خطای ora-00972 identifier is too long در oracle xe 11g با وایز

+1 رأی
میانگین بازدید روزانه 0.275 بازدید

درحین کار با پروژه ی ایجاد شده با وایز، هنگام عملیات crud برای برخی جداول به خطای فوق برمیخورد که در استفاده از h2 ندارد ومحدودیت کراکتر را 30 کارکتر در نظر میگیرد، برای حل این مشکل یا تغییر سیسست های mapping در jpa که نامگذاری را کمتر از 30 کاراکتر انجام دهد راهی وجود  دارد؟

سوال 1 سال قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
ویرایش 11 ماه قبل توسط Saeed Zarinfam

1 جواب

0 رأی
منشأ این مساله محدودیتی است که اراکل بر روی طول شناسه ها (نام جداول، ستون ها، ...) گذاشته است. بنابراین بایستی در نام گذاری جداول و ستون ها در annotation های jpa این محدودیت را در نظر گرفت. اگر نام ستون ها و جداول به صراحت تعیین نشوند، مقدار آن ها از روی نام فیلدها و کلاس ها استنتاج می شود که طولانی بودن نام آن ها می تواند منجر به نقض محدودیت فوق شود. احتمال این رخداد در روابط چند به چند بیشتر از سایر موارد است؛ چرا که در صورت عدم تعیین صریح نام جدول میانی، نام آن براساس به هم چسبانیدن نام دو طرف مشخص می شود.

مقداردهی همه برچسب (tag) های مربوط به اسامی در مدل ورودی وایز می تواند تا حد خوبی موجب رعایت این محدودیت گردد.
جواب 11 ماه قبل توسط mahdi mostafazadeh_5 (157 امتیاز)
لطفا نگاهی به به لینک زیر بیاندازید. احتمالاً همان چیزی است که شما به دنبال آن هستید.
https://stackoverflow.com/questions/30577953/hibernate-generates-too-long-identifiers-for-oracle?rq=1&utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
درود و ممنون از شما

با استفاده  از لینک ارسالی شما و توضیحات HIBERNATE،  کلاس PhysicalNamingStrategy و ImplicitNamingStrategy  را implement و در فایل config معرفی کردم اما هیچ تغییری ایجاد نشد

hibernate.physical_naming_strateg = ir.iasco.sale.requestmanagement.dao.ImprovedNamingStrategy
hibernate.implicit_naming_strategy=ir.iasco.sale.requestmanagement.dao.ImprovedImplicitNamingStrategy;

 و این هم امتحان کردم:
spring.jpa.hibernate.naming.physical_naming_strateg = ir.iasco.sale.requestmanagement.dao.ImprovedNamingStrategy
spring.jpa.hibernate.naming.implicit_naming_strategy=ir.iasco.sale.requestmanagement.dao.ImprovedImplicitNamingStrategy;

اما بنظر مییاد سیستم متوجه نمیشود .به جز مواردی که فرمودید  به این که محدود کنیم identifier  را نیاز داریم.

لطف میفرمایی راهنمایی کنید.
باتشکر

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.4520 بازدید
سوال 1 ماه قبل در تالار برنامه نویسی توسط gatity (139 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.5846 بازدید
سوال 2 ماه قبل در تالار برنامه نویسی توسط gatity (139 امتیاز)
+2 رأی
1 جواب میانگین بازدید روزانه 0.4789 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.242 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1647 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.2795 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1992 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 1.0840 بازدید
سوال 1 ماه قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.7104 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.4271 بازدید
سوال 5 ماه قبل در تالار برنامه نویسی توسط Saeed Mirshams (146 امتیاز)
کانال تلگرام جواب یاب
...