การระบุการสืบทอดเอนทิตี

เอนทิตีสามารถสืบทอดคุณสมบัติจากเอนทิตีอื่นได้ คุณสามารถระบุกลยุทธ์จำเพาะเพื่อใช้สำหรับการสืบทอด

ใช้ขั้นตอนนี้เพื่อระบุการสืบทอด (@Inheritance) สำหรับเอนทิตีที่มีอยู่ (@Entity):

  1. เลือกเอนทิตีใน Project Explorer

  2. ในมุมมอง รายละเอียด JPA เลือกข้อมูล การสืบทอด

    การระบุการสืบทอด

    การเลือกพื้นที่การสืบทอดบนมุมมองรายละเอียด JPA
  3. ในรายการ กลยุทธ์ เลือกหนึ่งในกลยุทธ์การสืบทอดต่อไปนี้:

    • ตารางเดียว (ดีฟอลต์)

    • ตารางที่รวมกัน

    • หนึ่งตารางต่อคลาส

  4. ใช้ตารางต่อไปนี้เพื่อป้อนข้อมูลฟิลด์ที่เหลืออยู่บนแท็บให้สมบูรณ์ ดูที่ "ข้อมูลการสืบทอด" สำหรับรายละเอียดเพิ่มเติม

    คุณสมบัติ รายละเอียด ดีฟอลต์
    คอลัมน์ Discriminator ชื่อของคอลัมน์ discriminator เมื่อใช้กลยุทธ์การสืบทอด Single หรือ Joined

    ฟิลด์นี้ตรงกับการเพิ่มความคิดเห็น @DiscriminatorColumn


    ชนิด Discriminator เซ็ตชนิด discriminator เป็น Char หรือ Integer (แทนค่าดีฟอลต์: String) ค่า Discriminator ต้องเป็นไปตามชนิดนี้ String
    ค่า Discriminator ระบุค่า discriminator ที่ใช้เพื่อแยกความแตกต่างเอนทิตีในลำดับชั้นการสืบทอดนี้ ค่ต้องเป็นไปตาม ชนิด Discriminator ที่ระบุ

    ฟิลด์นี้ตรงกับการเพิ่มความคิดเห็น @DiscriminatorValue


    เขียนทับดีฟอลต์ ใช้ฟิลด์นี้เพื่อระบุคอลัมน์ join คีย์หลักแบบกำหนดเอง

    ฟิลด์นี้ตรงกับการเพิ่มความคิดเห็น @PrimaryKeyJoinClumn



Eclipse เพิ่มการเพิ่มความคิดเห็นต่อไปนี้กับฟิลด์เอนทิตี:

@Inheritance(strategy=InheritanceType.<INHERITANCE_STRATEGY>)
@DiscriminatorColumn(name="<DISCRIMINATOR_COLUMN>",
    discriminatorType=<DISCRIMINATOR_TYPE>)
@DiscriminatorValue(value-"<DISCRIMINATOR_VALUE>")
@PrimaryKeyJoinColumn(name="<JOIN_COLUMN_NAME>", 
    referencedColumnName = "<REFERENCED_COLUMN_NAME>")

รูปต่อไปนี้แสดงกลยุทธ์การสืบทอดที่ต่างกัน

การสืบทอดตารางเดียว

รูปนี้แสดงการสืบทอดเอนทิตีในตารางเดียว

การสืบทอดตารางที่รวมกัน

รูปนี้แสดงกลยุทธ์การสืบทอด subclass ที่รวมกัน

 

งานที่เกี่ยวข้อง

การเพิ่ม persistence ให้กับคลาส

 

แนวคิดที่เกี่ยวข้อง

เข้าใจ Java persistence