EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

پاسخ داده شد
0
0

روش Mapped Superclass در هایبرنت با استفاده از انوتیشن چگونه انجام می شود؟

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

در این روش یک کلاس پدر و تعدادی زیرکلاس داریم اما کلاس پدر entity نخواهد بود یعنی به ازای کلاس پدر جدولی در دیتابیس نخواهیم داشت.این روش برای به اشتراک گذاشتن فیلدها مناسب است و از تعریف مجدد فیلدهای تکراری جلوگیری می شود. برای انجام کوئری روی جداول نیازی به join  جداول نداریم و از این نظر این یک مزیت می باشد چون نیازی به کوئری های پیچیده نمی باشد.

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

برای مشخص کردن کلاس پدر از انوتیشن MappedSuperclass@ استفاده می کنیم.

@MappedSuperclass
public class Person {
 
    @Id
    @Column
    private long personId;
    @Column
    private String name;
 
    // constructor, getters, setters
}

در نظر داشته باشید برای کلاس پدر انوتیشن Entity@ بکار نمی بریم.

برای تعریف یک زیرکلاس به صورت زیر عمل می کنیم:

@Entity
public class MyEmployee extends Person {

    @Column
    private String company;
    // constructor, getters, setters 
}
  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت