使用使用Hibernate的Spring应用程序,在我的DAO层中,我们运行UPDATE语句来更新Oracle数据库中的某些值。
为了确保我没有疯狂,我在SQL Developer中运行语句以确保它正常工作。这是我的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()
它到达那一行,而不是转到我服务层中的下一个语句。
我做错了什么?
答案 0 :(得分:1)
您的交易在哪里?!
使用:
session.beginTransaction().commit();
在代码的结尾处添加此内容。
我希望这会对你有所帮助。