Hibernate DB记录更新,代码运行但DB未更新

时间:2018-04-30 16:43:33

标签: java hibernate jpa

我是编码新手,但我很享受学习经历。我被困在了,并希望得到一些帮助。 我正在尝试编写一个简单的方法来充值用户余额,下面的充值方法代码,一旦更新量将其写入DB,我使用的是Mysql。

代码正在编译,我在内存中获得了预期的结果,余额已更新,但是它没有写入数据库,也没有错误。我怀疑我的更新查询的实现有问题。我设置了余额,我开始转换,更新,刷新,结束转换,不确定这是否正确。欣赏一些方向。

public void Topup(BigDecimal amount)
{
    System.out.println("entering topup method");
    EntityManager em = emf.createEntityManager();

    if (balance!=null)
    {
    balance = balance.add(amount);

    }

    else {
        balance = balance.ZERO ;
        balance = balance.add(amount);
    }

    setBalance(balance);

    em.getTransaction().begin();

    em.createQuery("update Balance set balance = balance where 
    idsender=idsender")
    .executeUpdate();

    em.flush();
    em.getTransaction().commit();
    em.close();
}

1 个答案:

答案 0 :(得分:0)

您正在使用相同的常量字符串,"更新余额设置余额=余额,其中idsender = idsender"一直以来。

您需要将变量插入字符串,例如

"update Balance set balance = " + balance + "where idsender = " + someId

当然,您需要将余额转换为字符串,并将someId替换为适当的值。