代码之家  ›  专栏  ›  技术社区  ›  abhi

Hibernate的SQLQuery executeUpdate函数启动,但未完全执行

  •  0
  • abhi  · 技术社区  · 10 年前

    在使用Hibernate的Spring应用程序上工作,在我的DAO层中,我们运行UPDATE语句来更新Oracle数据库中的一些值。

    为了确保我没有发疯,我在SQLDeveloper中运行了该语句,以确保它正常工作。下面是我的DAO代码的一部分:

    public void updateObjectInMyTable(SomeClassA objectOfSomeClassA) {
            Session session = getCurrentSession();
            String sql = "UPDATE SCHEMA_NAME.TABLE_XYZ SET FIRST_NAME=:firstName, LAST_NAME=:lastName, ADDRESS=:address, CITY=:city, ZIPCODE=:zipcode WHERE ID_NUMBER = :idNumber";
            SQLQuery query = session.createSQLQuery(sql);
            query.setParameter("firstName", objectOfSomeClassA.getFirstName());
            query.setParameter("lastName", objectOfSomeClassA.getLastName());
            query.setParameter("address", objectOfSomeClassA.getAddress());
            query.setParameter("city", objectOfSomeClassA.getCity());
            query.setParameter("zipcode", objectOfSomeClassA.getZipcode());
            query.setParameter("idNumber", objectOfSomeClassA.getIdNumber());
            query.executeUpdate();
        }
    

    (请原谅用于替换真实变量的糟糕变量名。)我在服务器上进行了调试,没有发现任何错误 query.executeUpdate() 它到达了那一行,并没有传递到我在服务层中的下一个语句。

    我做错什么了吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Mohammadreza Khatami    10 年前

    你的交易在哪里?!

    使用:

    session.beginTransaction().commit();
    

    将其添加到代码的最后一行。

    我希望这对你有帮助。