Java 如何将自定义/默认值设置为来自数据库的值?
如何将自定义/默认值设置为来自数据库的值? 我有以下颜色代码值,需要与DB中的值匹配/设置Java 如何将自定义/默认值设置为来自数据库的值?,java,hibernate,spring-boot,jpa,Java,Hibernate,Spring Boot,Jpa,如何将自定义/默认值设置为来自数据库的值? 我有以下颜色代码值,需要与DB中的值匹配/设置 **Values from DB** **Default value** At Risk - Red On Track - Green Needs Attention - Yellow 请让我知道如何调整我下面的代码以获得预期的o/p String colorStatus = userObj.setStatus();
**Values from DB** **Default value**
At Risk - Red
On Track - Green
Needs Attention - Yellow
请让我知道如何调整我下面的代码以获得预期的o/p
String colorStatus = userObj.setStatus();
userCodeValue.setStatus(colorStatus);
/*String yellowColor = "yellow";
if(colorStatus.equalsIgnoreCase("Need Attention")){
vlcValue.setStatus(yellowColor);
}*/
可以使用枚举将映射设置为静态。第一个元素是获取默认颜色的接口:
public interface ColorMapper {
Color defaultValue();
}
颜色枚举:
public enum Color {
RED, GREEN, YELLOW
}
以及原始值和默认值之间的静态映射:
public enum Status implements ColorMapper {
AT_RISK("At Risk") {
@Override
public Color defaultValue() {
return Color.RED;
}
},
ON_TRACK("On Track") {
@Override
public Color defaultValue() {
return Color.GREEN;
}
},
NEEDS_ATTENTION("Needs Attention") {
@Override
public Color defaultValue() {
return Color.YELLOW;
}
};
private String code;
Status(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
@Service
public class MyService{
private static final Map<String,String> defaultMappingValues;
public MyService(){
defaultMappingValues.put("At Risk", "RED");
defaultMappingValues.put("On Track", "Green");
defaultMappingValues.put("Needs Attention","Yellow");
}
}
这个映射是静态的,在任何时候都非常清晰。
另一个选项是创建一个映射
,在其中保持数据库值和默认值之间的映射:
public enum Status implements ColorMapper {
AT_RISK("At Risk") {
@Override
public Color defaultValue() {
return Color.RED;
}
},
ON_TRACK("On Track") {
@Override
public Color defaultValue() {
return Color.GREEN;
}
},
NEEDS_ATTENTION("Needs Attention") {
@Override
public Color defaultValue() {
return Color.YELLOW;
}
};
private String code;
Status(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
@Service
public class MyService{
private static final Map<String,String> defaultMappingValues;
public MyService(){
defaultMappingValues.put("At Risk", "RED");
defaultMappingValues.put("On Track", "Green");
defaultMappingValues.put("Needs Attention","Yellow");
}
}
“有风险”可以有红色以外的其他价值?要求是这样的,而且我们提供的默认值/自定义值也不重要,理想情况下,我想要的是与我作为自定义值提供的值相匹配的值。我感谢您的回复,既然我在JPA中使用Springboot,有什么方法可以让它更简单吗?我可以在我的serviceImpl类中编写一些东西吗?