簡體   English   中英

將數據庫查找映射到JPA實體

[英]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_codebank_code出現類gender_code bank_code具有相同的值。

我嘗試創建視圖gender_lookupBank_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM