gpt4 book ai didi

java - 将 hibernate 与 mysql 一起使用

转载 作者:行者123 更新时间:2023-11-29 10:05:17 25 4
gpt4 key购买 nike

我遵循了本教程 mykong为了将 hibernate 与 mysql 一起使用。

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

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

Hibernate: insert into stock (STOCK_CODE, STOCK_NAME) values (?, ?)

有人可以帮我解决这个问题吗?

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

Stock stock = new Stock();

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

session.persist(stock);

session.flush();

session.getTransaction().commit();

session.close();

最佳答案

您正在尝试提交一项您尚未开始的事务,因为您丢失了

session.beginTransaction();

在你的代码中。

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

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

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

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

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

关于java - 将 hibernate 与 mysql 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52037073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com