@RequestMapping(value = "/data", method = GET) @ResponseBody public Map<String, Object> data(@RequestParam("dsId") JdbcOeDataSource ds, WebRequest request) throws ErrorMessageException, OeDataSourceAccessException { JdbcOeDataEntrySource jdes = (JdbcOeDataEntrySource) ds; DbKeyValMap dbKeyValMap = new DbKeyValMap(); String doNotParseKeys = request.getParameter("doNotParseKeys"); if (doNotParseKeys == null || !doNotParseKeys.equalsIgnoreCase("true")) { dbKeyValMap = ControllerUtils.parseKeyValueMap(jdes, request.getParameterMap()); } // retrieve existing record and children CompleteRecord completeRecord = jdes.getCompleteRecord( dbKeyValMap, new ArrayList<String>(jdes.getChildTableMap().keySet())); Map<String, Object> data = ControllerUtils.mapDataAndFormatTimeForResponse( completeRecord.getParentRecord().getValues().keySet(), completeRecord.getParentRecord().getValues()); // Children for (ChildRecordSet childRecordSet : completeRecord.getChildrenRecordSets()) { List<Object> childRecords = new ArrayList<Object>(); for (TableAwareQueryRecord tableAwareQueryRecord : childRecordSet.getChildRecords()) { childRecords.add( ControllerUtils.mapDataAndFormatTimeForResponse( tableAwareQueryRecord.getValues().keySet(), tableAwareQueryRecord.getValues())); } data.put(childRecordSet.getChildTableName(), childRecords); } return data; }