如何在createSQLQuery中使用Hibernate更新数据

时间:2018-04-04 15:20:09

标签: sql hibernate

我有一个“table”,列id(int)name(string),size(string),quantity(int)

我希望每次调用它时都会更新减号的数量。这是我的代码,它工作正常(没有错误或异常),但没有更新数量。

我在互联网上搜索,有人说可以解决更新hibernate版本从3.0到3.2。但我有一个问题是如何查看我的hibernate版本以及如何更新它。

我是Hibernate的新手,并且不太了解它的语法。请帮我。非常感谢。

    public Object upItem(Class<?> objclass,Integer id){
    String up="update dbo.TB_ITEM set quantity=quantity-1 where id="; 
    String minus=String.valueOf(id);
    String both=up+minus;

    return sessionFactory.getCurrentSession().createSQLQuery(both).executeUpdate();}

1 个答案:

答案 0 :(得分:0)

看起来你需要一个交易。请尝试以下代码

    public Object upItem(Class<?> objclass, Integer id) {
        String up = "update dbo.TB_ITEM set quantity=quantity-1 where id=";
        String minus = String.valueOf(id);
        String both = up + minus;

        Session session = sessionFactory.getCurrentSession();
        // Start the transaction
        Transaction tx = session.beginTransaction();
        int result = session.createSQLQuery(both).executeUpdate();
        // commit your changes
        tx.commit();
        return result;
    }