هل من الممكن إنشاء مؤشرات على جدول الانضمام باستخدام التعليقات التوضيحية السبات و HBM2DDL؟

StackOverflow https://stackoverflow.com/questions/2230582

سؤال

لدي كيانين في جمعية متعددة إلى العديد من الرابطة. ينشئ السبات جدول انضمام لهذا الارتباط إذا تم تنشيط HBM2DDL. ومع ذلك، نظرا لأنني لا أملك كيان لهذا الجدول، لا يمكنني تطبيق التوضيحية IDETEX. هل هناك طريقة لإخبار السبات HBM2DDL لتوليد المؤشرات والمفتاح الأساسي على طاولة الانضمام؟

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

المحلول

خيار واحد هو استخدام كائنات قاعدة البيانات المساعدة, ، ولكن سيتطلب منك التبديل من التعليقات التشريحية JPA إلى تقليدية .hbm.xml ملف.

هنا مثال:

<!-- class mapping: -->
<class name="Entity1" table="Entity1">

  <!-- insert other mappings here -->

  <!-- this class's half of the many-to-many relationship: -->
  <set name="Entity2s" table="TheJoinTable">
    <key column="Entity1ID" />
    <many-to-many class="Entity2" column="Entity2ID" />
  </set>
</class>

<!-- auxiliary object: -->
<database-object>
  <create>CREATE INDEX MyIndex ON TheJoinTable(Entity1ID)</create>
</database-object>

خيار آخر هو لدغة الرصاصة وإنشاء كيان كامل لاستبدال جدول الصلة. هذا في الواقع ما فعلته في وضع مماثل.

أتمنى أن يساعدك هذا.

نصائح أخرى

يمكنك تطبيق الفهرس على توضيح جدول تجميع. على سبيل المثال:

    @javax.persistence.ElementCollection(fetch = javax.persistence.FetchType.LAZY)
@javax.persistence.CollectionTable(
        name = "TheJoinTable",
        indexes = {
            @Index(name = "MyIndex", columnList = "Entity1ID")},
         joinColumns = {
            @JoinColumn(name = "TheJoinColumn")}
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top