1

我正在使用休眠。

而且我想使用 HQL 将具有新值的新行(不从另一个对象复制)持久地存储到我的数据库中。

我在用于插入新行的 struts 动作类中的代码是:

public String execute() throws Exception {
        Users u = null;
        try {
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            u = new Users();
            u.setAge(getAge());
            u.setCity(getCity());
            u.setEmail(getEmail());
            u.setName(getUsername());
            u.setPassword(getPassword());
            u.setSex(getSex());
            session.save(u);
            session.getTransaction().commit();
        } catch (Exception e) {
            this.addActionError("Oops. And Error Encountered...!");
        }
        return SUCCESS;
    }

代码成功执行,没有任何错误。但它并没有永久存储在我的数据库中。我在数据库中看不到新行。可能是什么错误。?

或者,如果有任何其他方法可以使用 HQL 插入新行,请告知。

提前致谢。

4

1 回答 1

2

您必须在最后通过调用关闭会话:

session.close();

最好在 finally 块中执行此操作:

finally {
  session.close();
}
于 2012-07-11T12:54:51.160 回答