将休眠与 mysql 一起使用
using hibernate with mysql
我遵循本教程 mykong 以便将休眠与 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 = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Stock stock = new Stock();
stock.setStockCode("4715");
stock.setStockName("GENM");
session.save(stock);
session.getTransaction().commit();
我遵循本教程 mykong 以便将休眠与 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 = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Stock stock = new Stock();
stock.setStockCode("4715");
stock.setStockName("GENM");
session.save(stock);
session.getTransaction().commit();