2014-01-27 61 views
0

我正在學習在java中使用存儲過程。早些時候,我使用JDBC模板,我能夠從數據庫中獲取值。 現在我有一個錯誤:收集對象不能轉換爲列表類錯誤 - 收集<Object>不能轉換爲列表<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(); 

這是我的錯誤。

在我implementaion類我有

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

可否請您發佈您的StoredProcedure類 –

+0

我已經給出了上面的存儲過程類。 –

回答

0

values()返回一組,而不是一個列表。

你能雖然做的是:

List<Patient> patients = new ArrayList(registrationResults.values()); 

這將創建一個新的列表,並與返回鍵填充它。

爲什麼你確實需要這樣做?如果您只是使用values作爲CollectionSet,則代碼將更有效。

相關問題