结合mysql使用hibernate

z4iuyo4d  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(384)

为了使用hibernate和mysql,我遵循了mykong教程。
我的问题是,当我启动程序时,我得到这个异常org.hibernate.transactionexception:transaction not successfully started”。
所以我试着用 session.persist(Object) 以及 session.flush() 而不是 session.save(Object) 以及 session.getTransaction().commit() . 现在我没有得到任何异常,但对象没有保存在数据库中。日志显示请求
休眠:插入股票(股票代码,股票名称)值(?,)
有人能帮我吗?

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

        Stock stock = new Stock();

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

        session.persist(stock);

        session.flush();

        session.getTransaction().commit();

        session.close();
myzjeezk

myzjeezk1#

您正在尝试提交一个尚未启动的事务,因为您丢失了该事务

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();

相关问题