我正在使用Ebean在Java中实现一个解决方案,我在使用Enums或只是查找表时遇到了一些问题。
我有一张桌子“Tooth”。牙齿可以是“临时”或“永久”。
我可以创建一个简单的枚举:
@EnumMapping(nameValuePairs = "TEMPORARY=T, PERMANENT=P")
public enum DentitionType { TEMPORARY, PERMANENT; }
但是如果我想进行直接的SQL查询,我必须转换“T”和“P”,所以解决方案是使用如下的查找表:
@Entity
public class DentitionType {
@Column(length = 15)
public String name;
private static DentitionType permanent;
public boolean isTemporary() {
return !this.equals(getPermanent());
}
public boolean isPermanent() {
return this.equals(getPermanent());
}
public static DentitionType getPermanent() {
if (permanent == null) {
permanent = DentitionType.FIND.byId(2L);
}
return permanent;
}
}
这种感觉有点硬编码,而对于较大的表格,需要很多功能。
有更好的解决方案吗?提前谢谢。
答案 0 :(得分:0)
为什么不使用?
public enum DentitionType {
TEMPORARY('T'), PERMANENT('P');
private char value;
private Currency(char value) {
this.value = value;
}
public static DentitionType Get(final char value){
for (DentitionType type : DentitionType.values())
if (type.name == name)
return type;
return null;
}
};