I am trying to do simple edit for my web application for that i am getting stringify data from frontend, so i converted it into object but then i am getting id as Long value.my code works fine with add new data but whenever i tried to edit it gives error
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String.
Please check the screenshot i provided.
Controller.java
@RequestMapping(value = "/product", method = RequestMethod.POST)
public String managePostProduct(@RequestParam(name = "data", required = false) String add,
@RequestParam(name = "file") MultipartFile file,
HttpServletRequest request) {
try {
JSONParser parser = new JSONParser();
Object obj = parser.parse(add);
Addproductdetails detail = new Addproductdetails();
OurProducts mProduct = detail.addproduct(obj, file);
if (mProduct.getId() == 0) {
productDAO.addOurProducts(mProduct);
} else {
productDAO.update(mProduct);
}
if (!mProduct.getFile().getOriginalFilename().equals("")) {
FileUploadUtility.uploadFile(request, mProduct.getFile(), mProduct.getCode());
}
} catch (ParseException e) {
e.printStackTrace();
}
return "redirect:/manage/product?success=product";
}
Addproductdetails,java
public OurProducts addproduct(Object obj , MultipartFile file) {
ObjectMapper oMapper = new ObjectMapper();
Map<String, String> prod = oMapper.convertValue(obj, HashMap.class);
System.out.println("prod "+ prod);
OurProducts product = new OurProducts();
if (prod.containsKey("id")) {
System.out.println("product === " + prod.values());
}
int id = prod.containsKey("id") && !prod.get("id").isEmpty() ? Integer.parseInt((String) prod.get("id")) : 0;
product.setId(id);
product.setProduct_name(prod.get("product_name"));
product.setProduct_info(prod.get("product_info"));
product.setFile(file);
return product;
}
breakpoints
please tell me why i am getting id as Long value? How can i fix it?

HashMap. Possibly mapping to a type reference of aHashMap<String, String>might also work. See here for more info.