0 امتیاز
قبل در برنامه نویسی توسط (27 امتیاز)
ویرایش شده قبل توسط

من یه پروسیجر نوشتم و میخوام این فایل وقتی سیستم میاد بالا اجرا بشه و پروسیجر رو بسازه, که در عمل موقع اجرای  پروسیجر ناقص ساخته میشود. یعنی به اولی سمیکالن(;) که میرسه بقیه کدها رو اجرا نمیکنه به عبارتی هر سمیکالن نشان دهنده یه statment است.

تا حدودی دلیلش پیدا شد اونم اینه که من برای اینکه statment ها رو در چند خط بتونم بنویسم از پراپرتی 

org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor

هایبرنت استفاده کردم و این پروپرتی هم تو داکیومنت گفته که سمیکالن نشان دهنده هر statement هستش. و نمیشه هم این پروپرتی رو برداشت چون خود هایبرنت مقدار پیشفرض براش میزاره که کار رو بیشتر خراب میکنه(هر خط از فایل رو یه عنوان یه statement اجرا میکنه)

پروپرتی های که برای هایبرنت ست شده است به صورت زیر است:

entityManagerFactory.setJpaPropertyMap(new HashMap<String, String>() {{
            put(AvailableSettings.HBM2DDL_AUTO, env.getProperty("hibernate.hbm2ddl.auto"));
            put(AvailableSettings.PROCEDURE_NULL_PARAM_PASSING, Boolean.TRUE.toString());
            put(AvailableSettings.HBM2DDL_LOAD_SCRIPT_SOURCE, "ddl/procedures/sp_report2.sql");
            put(AvailableSettings.HBM2DDL_IMPORT_FILES_SQL_EXTRACTOR, "org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor");
            put(AvailableSettings.HBM2DDL_IMPORT_FILES,"0.sql,1.sql");
            put(AvailableSettings.DIALECT, "org.hibernate.dialect.Oracle10gDialect");
        }});

کسی میتونه تو این زمینه کمک کنه؟

سوالات مشابه

0 امتیاز
1 پاسخ 495 بازدید
+1 امتیاز
1 پاسخ 595 بازدید
+1 امتیاز
1 پاسخ 706 بازدید
0 امتیاز
0 پاسخ 840 بازدید
+1 امتیاز
1 پاسخ 715 بازدید
0 امتیاز
1 پاسخ 489 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط masoud65 (27 امتیاز)
0 امتیاز
3 پاسخ 1.0هزار بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
0 پاسخ 398 بازدید
0 امتیاز
1 پاسخ 612 بازدید
...