我正在学习在java中使用存储过程。之前我使用过JDBC模板,我能够从数据库中获取值。 现在我有一个错误:Collection Object无法转换为List Class
有什么方法可以将Collection(Object)转换为List(Class)?
是我的模特课
我的存储过程类
public class ListRegistration extends StoredProcedure {
@Autowired
private DataSource dataSource;
private static final String SCHEMA_NAME = "ehr";
private static final String SPROC_NAME = "ehr.usp_ListRegistration";
public DataSource getDataSource() {
return dataSource;
}
public ListRegistration(DataSource dataSource) {
super(dataSource, SPROC_NAME);
declareParameter(new SqlReturnResultSet("rs", new BeanPropertyRowMapper(Patient.class)));
declareParameter(new SqlParameter("LimitRows", Types.INTEGER));
compile();
}
public List<Patient> spExecute(Integer LimitRows)
{
Map<String, Object> registrationResult=new HashMap<String,Object>();
registrationResult = super.execute(LimitRows);
List<Patient> patientList = new ArrayList<Patient>;
patientList = registrationResult.values();
return patientList;
}
}
List<Patient> patientList = new ArrayList<Patient>;
patientList = registrationResult.values();
这是我收到错误的地方。
在我的实施课中我有
public List<Patient> getPatient() {
System.out.println("============================ Will Fetch Values ");
List<Patient> patientList = new ArrayList<Patient>();
int t=100;
patientList=listRegistration.spExecute(100);
return patientList;
}
答案 0 :(得分:0)
values()
返回一个Set,而不是List。
你可以做的是:
List<Patient> patients = new ArrayList(registrationResults.values());
这将创建一个新列表并用返回的密钥填充它。
为什么你真的需要这样做呢?如果您只使用values
作为Collection
或Set
,则代码效率会更高。