جيل دل والمثابرة العامة.إعدادات شمل (أوبنجبا)
-
12-12-2019 - |
سؤال
موجز
أحاول تشغيل تطبيق ويب جافا جبا 2.0 مثال.ال مثال على التطبيق وقد كتب لتشغيل في Glassfish
, ، باستخدام EclipseLink
كمزود جبا.وأود أن تحويله إلى تشغيل في TomEE
مع OpenJPA
كما مزود جبا ، ولكن لا أستطيع أي دروس مفصلة للحصول على وتشغيلها مع OpenJPA
.
المشكلة
أواجه مشكلة في التحويل persistence.xml
للعمل مع OpenJPA
بدلا من EclipseLink
.وبشكل أكثر تحديدا ، فإن المعطى persistence.xml
لا يحدد:
Entity
الطبقات.هل هذه ضرورية?- مزود جبا المطلوب.سوف الافتراضي الحاوية إلى شيء?
- سائق جدبك.كيف يمكنني تحديد" في الذاكرة " ديسيبل (فقط لأغراض الاختبار الأولي)?
أيضا:
- كيف يتم التعبير عن خصائص الجيل دل في أوبنجبا?لم أتمكن من العثور عليهم دليل المستخدم أوبنجبا.
التفاصيل
أدناه هو إكليبسلينك persistence.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="order" transaction-type="JTA">
<jta-data-source>jdbc/__default</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="both" />
</properties>
</persistence-unit>
</persistence>
لدي ما يلي Entity
الفصول الدراسية:
order.entity.LineItem
order.entity.LineItemKey
order.entity.Order
order.entity.Part
order.entity.PartKey
order.entity.Vendor
order.entity.VendorPart
السؤال
- لا أحد يعرف ما يعادل استمرار.سوف شمل تبدو ل أوبنجبا?
- بدلا من ذلك ، إذا كان أي شخص يمكن أن يشير لي إلى البرنامج التعليمي أوبنجبا التي تغطي هذه القضايا التي من شأنها أن تكون جيدة كما
المحلول
إذا قمت بإضافة openjpa.jdbc.SynchronizeMappings
الخاصية كما هو مبين أدناه أوبنجبا سوف لصناعة السيارات في إنشاء جميع الجداول الخاصة بك ، كل ما تبذلونه من المفاتيح الأساسية وجميع المفاتيح الخارجية بالضبط لتتناسب مع الكائنات الخاصة بك
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
بدلا من ذلك ، يمكنك استخدام إكليبسلينك في تومي فقط عن طريق إضافة الجرار إكليبسلينك إلى <CATALINA_HOME>/lib/
الرجوع هنا ل خصائص المثابرة المشتركة
نصائح أخرى
قيود المفتاح الخارجي
السطر التالي لا يخلق مفاتيح خارجية:
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)"/>
يقوم فقط بإنشاء مخطط وحذف محتوى قاعدة البيانات.
ولكن إذا كنت تريد إنشاء مفاتيح خارجية ، فاستخدم الأسطر التالية:
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(foreignKeys=true,schemaAction='dropDB,add')"/>
<property name="openjpa.jdbc.SchemaFactory"
value="native(foreignKeys=true)" />
<property name="openjpa.jdbc.MappingDefaults"
value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict"/>
انظر سكل ولدت
بطريقة أخرى ، إذا كنت تريد أن ترى إخراج سكل:
<property name="openjpa.Log"
value="DefaultLevel=TRACE,SQL=TRACE" />
ملاحظة:من أجل رؤية الإخراج الذي تم إنشاؤه في وحدة تحكم تومي ، تحتاج إلى تغيير مستوى السجل في الملف loggin.properties
مع openjpa.level = FINEST
شاهد المزيد في http://openjpa.apache.org/faq.html