一尘不染

将更改保存到数据库vaadin

hibernate

我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(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!

阅读 247

收藏
2020-06-20

共1个答案

一尘不染

我已经弄清楚了如何对数据库进行更改,下面是一些代码来演示:

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;
}
2020-06-20