2014-07-22 55 views
0

我有条件实体并且有一个属性条件类型有两个枚举医疗和行为要在从sql server获得CONDITION_NAME后设置?在从sql获得字符串后要枚举的字符串想要在实体中设置枚举

@SuppressWarnings("rawtypes") 
private List<Condition> getConditions(String patientId, Date runDate) { 
    // TODO 

    JdbcTemplate template = new JdbcTemplate(dataSource); 
    String sql = "select patient_id,condition_name from patient_condition, cpl_manage_condition" 
    + " where patient_condition.condition_id = cpl_manage_condition.condition_id"; 

    List<Map<String, Object>> rows = template.queryForList(sql); 
    List<Condition> conditions = new ArrayList<Condition>(); 

    for(Map row: rows){ 
     Condition condition = new Condition(); 

     //getting error 
     condition.setType((ConditionType)((String)row.get("CONDITION_NAME"))); 

     conditions.add(condition); 
    } 

    return conditions; 
} 

回答

1

我假设你的错误是

condition.setType((ConditionType)((String)row.get("CONDITION_NAME"))); 

而且应该是

condition.setType(ConditionType.valueOf(row.get("CONDITION_NAME").toString())); 

this question见。

+0

如何在医疗和行为条件下单独设置公共枚举ConditionType { MEDICAL,BEHAVIORAL } – user3865046

+0

@ user3865046您为什么要在此发布评论?您可以在上面的答案中使用字符串“MEDICAL”和“BEHAVIORAL”。 –

+0

即时新在这里不知道在哪里发布....即时获取错误就像不同的条件,如哮喘,糖尿病等//错误//没有枚举常量com.mp.model.ConditionType.Asthama //即时通讯使用couchbase db (没有SQL数据库) – user3865046

1

如果ConditionTypeenum,您可以使用ConditionType.valueOf(String)String值转换成该类型。注意你应该照顾null然后无效的参数。