I want to save data into master - details table.First portion is for master table and last portion is for details table.I have got java.lang.String cannot be cast to [Ljava.lang.String .How to recover from this problem.How to assign map.get("step_id[]") into a string array String[] WfIds. I want to assign each value into distinct string array.
Controller Code
 Map<String,Object> wfManager = new HashMap<String,Object>();
//************************Master data sent from view******************************//
   wfManager.put("workflow_code",(request.getParameter("workflow_code")).toUpperCase());
   wfManager.put("workflow_name",request.getParameter("workflow_name"));
   wfManager.put("workflow_descr",request.getParameter("workflow_descr"));
   wfManager.put("object_type_code",request.getParameter("object_type_code"));
//*********************Detail item data sent from view********************************//
    wfManager.put("wf_block_id[]",              request.getParameter("wf_block_id[]"));
    wfManager.put("step_code[]" ,               request.getParameter("step_code[]"));
    wfManager.put("step_name[]",                request.getParameter("step_name[]"));
    wfManager.put("doa_type_code[]",            request.getParameter("doa_type_code[]"));
    wfManager.put("doa_type_name[]",            request.getParameter("doa_type_name[]"));
Service Code
public Map<String, String> insert(Map<String, Object> map) {
//************************Master data sent from view******************************//
Map<String, String> data = new HashMap<String, String>();
    Workflow wf = new Workflow();
    wf.setWorkflowCode((String)map.get("workflow_code"));
    wf.setWorkflowName((String)map.get("workflow_name"));
    wf.setWorkflowDescr((String)map.get("workflow_descr"));
    wf.setObjectTypeCode((String)map.get("object_type_code"));
        String[] WfIds                  = (String[]) map.get("step_id[]");
        String[] wfBlockIds             = (String[]) map.get("wf_block_id[]");
        String[] wfsCodes               = (String[]) map.get("step_code[]");
        String[] stepNames              = (String[]) map.get("step_name[]");
        String[] doaTypeCodes           = (String[]) map.get("doa_type_code[]");
        String[] doaTypeNames           = (String[]) map.get("doa_type_name[]");
List<WorkflowDetails> wfDetailsList = new ArrayList<WorkflowDetails>();
for(int i = 0; i< wfsCodes.length; i++){
            WorkflowDetails wfDetails = new WorkflowDetails();
        wfDetails.setWorkflowCode(wf.getWorkflowCode());
        wfDetails.setWorkflowName(wf.getWorkflowName());
        wfDetails.setWorkflowDescr(wf.getWorkflowDescr());
        wfDetails.setWorkflowObjectTypeCode(wf.getObjectTypeCode());
        wfDetails.setWorkflowObjectTypeName(wf.getObjectTypeName());
       wfDetailsList.add(i,wfDetails);  
        }
        wf.setSteps(wfDetailsList);
        id = workflowManagerDAO.insertDoc(wf);
         data.put("id", id);
  return data;
} Code for DAO:
    @Transactional
@Override
public String insertDoc(Workflow wfManager) {
    for(int i = 0; i < wfManager.getSteps().size(); i++){
        WorkflowDetails wfDetails = new WorkflowDetails();
        wfDetails = wfManager.getSteps().get(i);
        sessionfactory.getCurrentSession().save(wfDetails);
        sessionfactory.getCurrentSession().flush();
    }
    String id = (String) sessionfactory.getCurrentSession().save(wfManager);
    sessionfactory.getCurrentSession().flush();
    return id;
}
 
     
    