与MySQL一起使用休眠

时间:2018-08-27 10:13:50

标签: java mysql hibernate persistence

我遵循了本教程mykong的要求,以便在MySQL中使用休眠模式。

我的问题是,当我启动程序时,出现此异常 org.hibernate.TransactionException:事务未成功启动”

因此,我尝试使用session.persist(Object)session.flush()而不是session.save(Object)session.getTransaction().commit()。现在,我没有任何异常,但是对象没有保存在数据库中。日志显示请求

  

休眠:插入库存(STOCK_CODE,STOCK_NAME)值(?,?)

有人可以帮我吗?

            session = HibernateUtil.getSessionFactory().openSession();

        Stock stock = new Stock();

        stock.setStockCode("4715");
        stock.setStockName("GENM");

        session.persist(stock);

        session.flush();

        session.getTransaction().commit();

        session.close();

1 个答案:

答案 0 :(得分:1)

由于丢失,您正在尝试提交甚至尚未启动的事务

session.beginTransaction();

在您的代码中。

根据上面的网站,您必须启动一个会话,然后在该会话中启动事务,进行编辑,将已编辑的对象保存到会话中,然后提交事务。刷新也会引起问题,因为在保存或提交会话之前就刷新会话。

    Session session = HibernateUtil.getSessionFactory().openSession();

    session.beginTransaction();
    Stock stock = new Stock();

    stock.setStockCode("4715");
    stock.setStockName("GENM");

    session.save(stock);
    session.getTransaction().commit();