WX:CodingTechWork扒披,一起工作學習總結。
問題
??在使用Spring Boot框架時典阵,選用@Entity
和@Table
生成實體類對應的MySQL表,但是在開發(fā)過程中镊逝,同一個項目下可能存在一些共用字段的表壮啊,如何抽取這些共用字段?
方案
使用注解創(chuàng)建抽象Entity類撑蒜,子類繼承該抽象類即可歹啼,子類中使用@Entity
和@Table
注解進行表映射創(chuàng)建。
@Inheritance
使用方式:創(chuàng)建抽象實體類座菠,使用注解
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
InheritanceType.TABLE_PER_CLASS
注解策略表示狸眼,每個具體的子類生成一個表。還有另外兩種策略:
-
InheritanceType.SINGLE_TABLE
:默認的繼承映射策略辈灼。實體類B和C都繼承實體類A份企,只生成1個表,包含了實體類A巡莹、B司志、C中的所有字段。 -
InheritanceType.JOINED
:聯(lián)合子類策略降宅,子類的字段被映射到各自的表中骂远,包括父類的字段,并執(zhí)行一個join操作來實例化子類腰根。
@MappedSuperclass
使用方式:創(chuàng)建抽象實體類激才,使用注解
@MappedSuperclass