如何在HQL中插入带有新值的新行(不从其他对象复制)?

时间:2012-07-11 11:46:15

标签: hibernate hql

我正在使用Hibernate。

我想用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插入新行,请告诉。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您必须通过调用以下方式结束会话:

session.close();

最好还是在finally块中执行:

finally {
  session.close();
}