EN

Search
Close this search box.

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

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

پیاده سازی روش single class در هایبرنت با استفاده از چگونه است؟

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

در این روش برای همه ی زیرکلاسها و همچنین کلاس پدر فقط یک جدول ایجاد می شود.مزیت این روش این است که کوئری  ها ساده و بهینه خواهند بود اما عیب آن این است که مقادیر بعضی ستونها null خواهد بود.انوتیشن این روش بسیار ساده می باشد که عبارتند از Inheritance(strategy=InheritanceType.SINGLE_TABLE@ و برای اینکه مشخص کنیم که هر رکورد متعلق به چه entity است از انوتیشن های DiscriminatorColumn  @DiscriminatorValue@ استفاده می کنیم

فرض کنیم یک کلاس کارمند و دو زیرکلاس کارمندقراردادی و کارمند رسمی داریم.کلاس کارمند که کلاس پدر می باشد بصورت زیر تعریف می شود:

@Entity  
@Table(name = "EMPLOYEE")  
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)  
@DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.STRING)  
@DiscriminatorValue(value="employee")    
public class Employee {  
@Id  
@GeneratedValue(strategy=GenerationType.AUTO)  
      
@Column(name = "id")  
private int id;  
  
@Column(name = "name")  
private String name;  
  
//setters and getters  
}  

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

Entity  
@DiscriminatorValue("regularemployee")  
public class Regular_Employee extends Employee{  
      
@Column(name="salary")    
private float salary;  
  
@Column(name="bonus")     
private int bonus;  
  
//setters and getters  
}  

@Entity  
@DiscriminatorValue("contractemployee")  
public class Contract_Employee extends Employee{  
      
    @Column(name="pay_per_hour")  
    private float pay_per_hour;  
      
    @Column(name="contract_duration")  
    private String contract_duration;  
  
    //setters and getters  
}  
  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت