java - 表作为枚举。是否可以?

标签 java hibernate jpa enums

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

例如,我有一个简单的计算器网络应用程序(spring web MVC + hibernate),其中有一个表(用户计算的结果),其中包含以下字段:id (PK)leftOperand 操作rightOperand结果

我想创建一个新的静态表(我的​​意思是用于基本算术运算,例如 PLUSMINUSDIVIDE MULTIPLY),有 2 个字段:id(PK) 和 operation,并将该表映射到 Java 中的枚举。

那么如何绑定(bind)这两个表(使用 operation 字段)? 非常感谢一些伪代码。

请注意,我不需要为静态表创建 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;
    }

}

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

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

关于java - 表作为枚举。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36397457/

相关文章:

java - 如何从枚举中获取值?

java - Gradle/Jenkins JAR发布到GitHub

java - Java 中反对类强制转换异常

oracle - JPQL CURRENT_TIMESTAMP 偏移 2 小时

java - 将 NULL 值分配给持久列

java - Java 中的 Dijkstra 算法

java - 当我们进行concat操作时,字符串将在java中哪里创建对象?

java - Hibernate 多次使用 Generatornames

java - 从.sql加载模式以在Spring Boot中创建orm映射

java.lang.NumberFormatException 尝试从查询中呈现值后