映射数据库查找到JPA实体

问题描述 投票:0回答:1

我有以下的数据库表:查找和员工。

查找表:结构有样本数据。

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_codebank_code具有相同的值。

我试图创建视图gender_lookupBank_lookup和直接映射他们的实体。再次休眠抱怨他无法找到一个表,这样的名称。

java hibernate jpa hibernate-mapping
1个回答
1
投票

我想尝试的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;
}
© www.soinside.com 2019 - 2024. All rights reserved.