如何在hibernate / java中添加/求和两个值

时间:2015-02-14 11:01:59

标签: java hibernate java-ee

大家好,我需要你的帮助。 我想在现有数量中添加库存。 例如,在我的jsp表单中,我必须输入要添加到我的数量的库存。如果我有10个数量,我输入5stock。数量现在将变为15。

我的控制器看起来像这样:

@RequestMapping(method = RequestMethod.POST, value = "/updateUser")
public String updateUser(HttpServletRequest request, ModelMap map) {

    String searchId = request.getParameter("userId");
    String searchProductName = request.getParameter("productName");
    String searchQuantity = request.getParameter("quantity");
    String searchPrice = request.getParameter("price");
    String searchDdes = request.getParameter("des");
    String searchStock = request.getParameter("stock");
    String searchDate = request.getParameter("date");

    Product updateableUser = new Product();

    updateableUser.setPname(searchProductName);
    updateableUser.setPquantity(searchQuantity);
    updateableUser.setPprice(searchPrice);
    updateableUser.setPdes(searchDdes);
    updateableUser.setPstock(searchStock);
    updateableUser.setPdate(searchDate);


    System.out.println("PRODUCT ID += " + searchId);
    productService.updateUser(updateableUser);
    return this.searchUsers(request, map, null, null);
}

我的DaoImpl

public void updateUser(Product product) {
        EntityManager entityManager = transactionManager.getEntityManagerFactory().createEntityManager();
        EntityTransaction transaction = entityManager.getTransaction();
        try {
            transaction.begin();

            entityManager.merge(product);
            transaction.commit();
        } catch (Exception exc) {
            exc.printStackTrace();
            if (transaction.isActive())
                transaction.rollback();
        } finally {
            if (entityManager.isOpen())
                entityManager.close();
        }
        System.out.println("MANA UG UPDATE");
    }

我在我的Controller中尝试这个语句: updateableUser.setPquantity(searchQuantity + searchStock);

但是当我有10个数量并输入5stock时,结果将变为105。 我该怎么做才能添加这两个值?

1 个答案:

答案 0 :(得分:0)

这看起来像是在两个字符串而不是两个整数上使用+符号,它们将字符串连接在一起而不是将它们作为整数添加在一起。你需要将它们变成Integers,以便以这种方式将它们组合在一起。

E.g。

int quantity = Integer.valueOf(searchQuantity)+ Integer.valueOf(searchStock)
updateableUser.setPquantity(String.valueOf(quantity)); 

当然,这可能会抛出异常,除非您已经验证它们的数字实际上是整数。