如何将静态表(不可扩展)映射到Java中的枚举并将此表绑定到另一个表?
例如,我有一个简单的计算器网络应用程序(spring web MVC + hibernate),其中包含一个表(用户计算结果),其中包含以下字段:id (PK)
,leftOperand
,{{1} },operation
,rightOperand
。
我想创建一个新的静态表(我的意思是基本算术运算,如result
,PLUS
,MINUS
,DIVIDE
),包含2个字段:{{ 1}})和MULTIPLY
,并将此表映射到Java中的枚举。
那么如何绑定这两个表(使用id(PK
字段)?
一些伪代码非常感谢。
请注意,我不需要为静态表创建一个hibernate实体。只是枚举。
答案 0 :(得分:1)
与类一样,您可以向枚举添加属性,如下所示:
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'字段与enum的name
匹配,您可以执行以下操作:
MyEnum enumValue = MyEnum.valueOf(map.get("operation"));
答案 1 :(得分:1)
我认为您不需要静态表来获取操作值。只需将operation
字段类型更改为枚举,然后使用@Enumerated
。
enum Operation {
PLUS, MINUS;
}
@Entity
public class Calculation {
private String leftOperand;
@Enumerated(EnumType.STRING)
private Operation operation;
private String rightOperand;
}