我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做
editorField.commit() // after the user clicks the save button
我努力了
editorField.commit() hbsession.persist(editorField) //hbsession is the name of my Session
而且我也尝试过
editorField.commit(); hbsession.save(editorField);
最后两个给我以下错误
Caused by: org.hibernate.SessionException: Session is closed!
我已经弄清楚了如何对数据库进行更改,下面是一些代码来演示:
try { /** define the session and begin it **/ hbsession = HibernateUtil.getSessionFactory().getCurrentSession(); hbsession.beginTransaction(); /** table is the name of the Bean class linked to the corresponding SQL table **/ String query = "UPDATE table SET name = " + textfield.getValue(); /** Run the string as an SQL query **/ Query q = hbsession.createQuery(query); q.executeUpdate(); /** This command saves changes or deletes a entry in table **/ hbsession.getTransaction().commit(); } catch (RuntimeException rex) { hbsession.getTransaction().rollback(); throw rex; }