0

我有代码可以更新数据库中的列,如下所示:

logger.info("Entering Update Method");
        Query query =session.createQuery("update CardMaster cm set cm.otpAmount = :otpAmount" + " where cm.cardNumber = :cardnumber");
        double otpAmount= cardMaster.getOtpAmount();
        String cardNumber=cardMaster.getCardNumber();
        query.setParameter("otpAmount",otpAmount);
        query.setParameter("cardnumber",cardNumber);
        query.executeUpdate();
        logger.info("cardMasterUpdated successfully");

在这个我得到 otpamount ,cardnumber 并且它给出了executeupdate的结果为1但它没有反映在数据库中..我正在打开会话并在外面正确提交。

如果我使用update()休眠而不是使用它,它会正确发生。

你能帮我解决这个问题吗?

4

1 回答 1

0

您必须提交交易。

由于您不提交,因此其他进程看不到任何内容,例如您用于查看数据库的工具。

您可以通过 获取您的交易session.getTransaction()。但是,通常您会像这样手动启动事务:

Transaction tx = session.beginTransaction();
// Do your stuff
session.flush();
tx.commit()
于 2012-07-24T14:52:17.697 回答