Java 表作为枚举。可能吗?

Java 表作为枚举。可能吗?,java,hibernate,jpa,enums,Java,Hibernate,Jpa,Enums,如何将静态表(不可扩展)映射到Java中的枚举,并将此表绑定到另一个表 例如,我有一个简单的计算器web应用程序(SpringWebMVC+hibernate),其中有一个表(用户的计算结果),该表有以下字段:id(PK),leftOperator,operation,righOperator,result 我想创建一个新的静态表(我的意思是用于基本的算术运算,如加号,减号,除号,乘号),有两个字段:id(PK)和运算,并将此表映射到Java中的enum 那么如何绑定这两个表(使用操作字段)?

如何将静态表(不可扩展)映射到Java中的枚举,并将此表绑定到另一个表

例如,我有一个简单的计算器web应用程序(SpringWebMVC+hibernate),其中有一个表(用户的计算结果),该表有以下字段:
id(PK)
leftOperator
operation
righOperator
result

我想创建一个新的静态表(我的意思是用于基本的算术运算,如
加号
减号
除号
乘号
),有两个字段:
id(PK
)和
运算
,并将此表映射到Java中的enum

那么如何绑定这两个表(使用
操作
字段)?
一些伪代码非常受欢迎


注意,我不需要为静态表创建hibernate实体。只需枚举。

与类一样,您可以向枚举添加属性,如下所示:

public enum MyEnum {
    PLUS(1, "something"),
    MINUS(2, "something");

    private final int id;
    private final String string;

    private MyEnum(int id, String string){
        this.id = id;
        this.string = string;
    }

    public int getId(){
        return id;
    }

    public String getString(){
        return string;
    }

}
假设“操作”字段与枚举的
名称匹配,则可以执行以下操作:

MyEnum enumValue = MyEnum.valueOf(map.get("operation"));

我认为操作值不需要静态表。只需将
操作
字段类型更改为enum并使用
@Enumerated

enum Operation {
    PLUS, MINUS;
}

@Entity
public class Calculation {

    private String leftOperand;

    @Enumerated(EnumType.STRING)
    private Operation operation;

    private String rightOperand;

}

是的,这很简单。但有没有办法让一个单独的表映射到enum并绑定到主表?@stryker我认为没有办法做到这一点。为enum提供单独的静态表似乎没有任何意义。原因有二:将表映射到enum并将这些表相互绑定,这不是真正的web应用程序。这只是为了测试,我想知道它是如何工作的。谢谢,我们需要为希望在SQL中执行所有操作的团队成员使用表来支持所有枚举…因此,您将在Java中拥有一个具有id到字符串映射的枚举,但您也希望在数据库中保留完全相同的信息?!因此有重复。(对我来说)你为什么要那样做毫无意义。有人可能会进来同时更新Java枚举映射,然后它们就不一致了。。。