首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表作为枚举。有可能吗?

问表作为枚举。有可能吗?
EN

Stack Overflow用户
提问于 2016-04-04 16:09:03
回答 2查看 2.4K关注 0票数 1

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

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

我想创建一个新的静态表(我指的是基本的算术操作,如PLUS、MINUS、DIVIDE、MULTIPLY)和2个字段:id(PK)和operation,并将该表映射到java语言中的枚举。

那么如何绑定这两个表(使用operation字段)?我们非常欣赏一些伪代码。

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

EN

回答 2

Stack Overflow用户

发布于 2016-04-04 16:19:30

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

代码语言:javascript
复制
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‘字段与枚举的name匹配,您可以执行以下操作:

代码语言:javascript
复制
MyEnum enumValue = MyEnum.valueOf(map.get("operation"));
票数 1
EN

Stack Overflow用户

发布于 2016-04-04 16:41:06

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

代码语言:javascript
复制
enum Operation {
    PLUS, MINUS;
}

@Entity
public class Calculation {

    private String leftOperand;

    @Enumerated(EnumType.STRING)
    private Operation operation;

    private String rightOperand;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36397457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档