为了使用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();
1条答案
按热度按时间epfja78i1#
您正在尝试提交一个尚未启动的事务,因为您丢失了该事务
在你的代码里。
根据上面的网站,您必须启动一个会话,然后在会话中启动事务,进行编辑,将编辑的对象保存到会话中,然后提交事务。刷新也会导致问题,因为在保存或提交会话之前刷新会话。