java - Hibernate 中所有枚举类型的一张表

标签 java hibernate enums

我有一个类,假设 Employee 如下;

public class Employee{
    ... Other attributes ...
    @Column @Enumerated(EnumType.Ordinal)
    private Gender gender;

    @Column @Enumerated(EnumType.Ordinal)
    private EmployeeType employeeType;
    ... Getters & Setters ...
}

我的员工表是这样的。

Employee{
    ... other columns ....
    gender int,
    employeetype int,
    ...
}

我有一个通用的查找表查找

Lookups{
    id long,
    lookName String,
    lookId int,
    lookValue String
}

我希望 Hibernate 将 Genders 和 EmployeeTypes 保留在 Lookups 表中,如下所示,我该怎么做;

+--+-------------+---------+------------+ 
|ID|LOOKUPNAME   |LOOKUPID | LOOKUPVALUE|
+--+-------------+---------+------------+
+--+-------------+---------+------------+
|1 | GENDER      | 1       | MALE       |
+--+-------------+---------+------------+ 
|2 | GENDER      | 2       | FEMALE     |
+--+-------------+---------+------------+
|3 | EMPLOYEETYPE| 1       | TEAM MEMBER|
+--+-------------+---------+------------+
|4 | EMPLOYEETYPE| 2       | TEAM LEADER|
+--+-------------+---------+------------+
|5 | EMPLOYEETYPE| 3       | MANAGER    | 
+--+-------------+---------+------------+    

最佳答案

创建 Lookups 类。然后,对于 Employee 类的 Gender 和 EmployeeType 字段,将它们替换为 Lookups 字段。然后删除 Enumerated 注释。

关于java - Hibernate 中所有枚举类型的一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6924168/

相关文章:

java - EhCache Hibernate 二级缓存 maxBytesLocalHeap 慢

接口(interface)/基类中的 C# 枚举?

c# - 是否有可能在 c# 中模仿这个 java 枚举代码

java - Hibernate Criteria : distinct entities, 获取连接和 MaxResults

java - 使用枚举而不是集合的好处

java - 如何在docker容器的tomcat 7中部署war文件

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 4 Error

java - 为什么 PathMatcher 不匹配路径?

java - 如何测试两个 Joda-Time DateTime 对象是否几乎相等?

java - hibernate 枚举中多对多映射的条件限制如何