父類
@Entity @Table(name = "T_CAR")
// 使用此注釋:T_CAR表中必須添加CAR_TYPE字段,如果不使用此注釋:表中也必須添加默認的DTYPE字段 @DiscriminatorColumn(name = "CAR_TYPE") public class Car extends EntityBean implements Serializable { // 此處省略...
}
子類
@Entity @DiscriminatorValue("BENZ") public class Benz extends Car { // 此處省略
}
子類
@Entity @DiscriminatorValue("BMW") public class BMW extends Car { // 此處省略
}
@DiscriminatorValue("BENZ")注釋在子類,就會默認T_CAR表中有DTYPE字段,
查T_CAR表的時候,默認是使用DTYPE='BENZ'條件查詢
建表的時候一定要添加DTYPE字段,否則會報:ORA-00904: "T_CAR"."DTYPE": 標識符無效
SELECT DTYPE FROM T_CAR WHERE DTYPE='BENZ'; SELECT DTYPE FROM T_CAR WHERE DTYPE='BMW';
@DiscriminatorColumn(name = "TYPE")注釋在父類,就是將默認的 DTYPE 字段改名為自定義的 CAR_TYPE
查T_CAR表的時候,默認是使用CAR_TYPE='BENZ'條件查詢
建表的時候一定要添加CAR_TYPE字段,否則會報:ORA-00904: "T_CAR"."CAR_TYPE": 標識符無效
SELECT CAR_TYPE FROM T_CAR WHERE CAR_TYPE='BENZ'; SELECT CAR_TYPE FROM T_CAR WHERE CAR_TYPE='BMW';
---------------------------------------------------------
多對多的時候,關聯中間表,下面的字段都是關聯字段
@ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "中間表",joinColumns = { @JoinColumn(name="中間表與當前表關聯的字段",referencedColumnName = "當前表與中間表關聯的字段")},inverseJoinColumns = { @JoinColumn(name = "中間表與另一個表關聯的字段",referencedColumnName = "另一個表與中間表關聯的字段")}) private List<另一個表實體> entitys;