1

私は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を使用して新しい行を挿入する他の方法がある場合は、教えてください。

前もって感謝します。

4

1 に答える 1

2

最後に、次の電話をかけてセッションを閉じる必要があります。

session.close();

また、finallyブロックでそれを行う方が良いです:

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