شرح الخصائص الموروثة من أجل الثبات
-
03-07-2019 - |
سؤال
على افتراض أن لدي فئة "أ" على النحو التالي:
class A{
int id;
int getId(){};
void setId(int id){};
}
والفئة ب على النحو التالي:
@Entity
@Table(name="B")
class B extends A{
string name;
@Column(length=20)
string getName(){}
void setName(){}
}
كيف يمكنني التعليق على حقل الهوية الموروثة من A بحيث يعرف Hibernate/JPA أنه معرف الكيان؟ حاولت ببساطة وضع ID في الحقل في A لكن هذا لم ينجح. حاولت صنع كيان أيضًا وهذا لم ينجح أيضًا.
المحلول
على افتراض أنك لا تريد أن تمثل الفئة الفائقة نفسها كيانًا ، يمكنك استخدامه @MappedSuperclass
على الطبقة الفائقة لجعل الفئات الفرعية ترث خصائص الثبات:
@MappedSuperclass
class A{
int id;
@Id
int getId(){};
void setId(int id){};
}
النظر في جعل الخلاصة الفائقة. نرى هذا القسم من المستند لمزيد من التفاصيل.
نصائح أخرى
هناك عدد من الاستراتيجيات التي يمكنك استخدامها. هذا شيء يمكنك تجربته:
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
class A{
int id;
@Id @GeneratedValue
int getId(){};
void setId(int id){};
}
@Entity
@Table(name="B")
class B extends A{
string name;
@Column(length=20)
string getName(){}
void setName(){}
}
لا تنتمي إلى StackOverflow