【问题标题】:createSQLQuery(sql).executeUpdate() not working after inserting the first record插入第一条记录后 createSQLQuery(sql).executeUpdate() 不起作用
【发布时间】:2014-07-14 23:22:54
【问题描述】:

我正在调用下面的方法,需要通过存储过程将记录插入到表中。

在我的本地机器上,更新总是有效的。在服务器更新停止后插入一个

记录。它不打印任何异常。

我的方法

public void executeTableUpdate(String sql) throws Exception {
    StatelessSession session = null;
    try {
        session = getSessionFactory().openStatelessSession();
        session.beginTransaction();
        int result = session.createSQLQuery(sql).executeUpdate();
    } catch (Exception ex) {
        e.getMessage();
    } finally {
        if (session != null) {
            try {
                session.getTransaction().commit();
                session.close();                    
            } catch (Exception exception) {
             exception.getMessage();
            }
        }
    }
}

传递的SQL是

调用 SP_UPDATE_STATUS(NOW(),'value1',NOW(),'value1',1,'summary',)

【问题讨论】:

    标签: hibernate hibernate-session


    【解决方案1】:

    当然你看不到任何异常,因为你只是忽略它们:

    e.getMessage();
    

    这不是你处理异常的方式。

    快速解决方法是:

    e.printStackTrace();
    
    1. 更好的解决方案是使用日志框架(Logback 或 Lof4j)
    2. 每次调用此方法时都打开一个会话根本没有效率
    3. 对于要部署在服务器上的代码(使用 Java EE、Spring 或编写自己的拦截器来处理此任务),不应手动打开/关闭事务

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      相关资源
      最近更新 更多