[英]Mapping database lookups to jpa entities
我有以下數據庫表:查找和雇員。
查找表:帶有樣本數據的結構。
class_name value description
GENDER_CODE 1 Male
GENDER_CODE 2 Female
BANK_CODE 1 HSBC
BANK_CODE 2 CityBank
員工表:帶有樣本數據的結構。
id name gender_code bank_code
1 Yusuf 1 1
2 Maher 1 2
3 Suzan 2 1
將它們映射到JPA實體的最佳方法是什么?
我試圖將抽象類映射到查找表,並使用class_name
列作為Gender和Bank子類的判別器,並在employee對象中將bank和sex引用為ManyToOne。.但是,當gender_code
和bank_code
出現類gender_code
bank_code
具有相同的值。
我嘗試創建視圖gender_lookup
和Bank_lookup
並將它們直接映射到實體。 冬眠再次抱怨說他找不到這樣的名字的桌子。
我會嘗試將lookuptable映射為n + 1個分離的實體,一個抽象和n個孩子。
映射的超類應具有SINGLE_TABLE繼承,子類需要聲明鑒別符。
像這樣:
@MappedSuperclass
@DiscriminatorColumn(name = "class_name")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class LookupTable{
@Id
private Long vale;
@Column(nullable = false)
private String description;
// Getters and setters
}
@Entity
@DiscriminatorValue("GENDER_CODE")
public class GenderCode extends LookupTable() {
}
@Entity
@DiscriminatorValue("BANK_CODE")
public class BankCode extends LookupTable() {
}
@Entity
public class Employee{
@Id
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private GenderCode genderCode;
@Column(nullable = false)
private BankCode bankCode;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.