使用休眠和提交将数据保存在数据库中()
问题描述:
我在java EE中创建了restful api。使用休眠和提交将数据保存在数据库中()
我已经在类中定义
private static Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
private static org.hibernate.Transaction tx = session.beginTransaction();
和方法我打电话然而
Person n = new Person(getPersonId() , name);
session.save(n);
tx.commit();
提交()关闭交易,且无需提交数据不会被保存在数据库中。在不使用提交的情况下将数据保存到数据库的最佳方式是什么?这导致在每个缓慢的请求上创建新的事务。
答
尝试不使用事务并提交。保存后使用刷新。
+0
可以详细说明吗? – Dingo
+0
session.save(n);调用Session.flush();这不会创建一个sql事务,但应该插入n个寄存器。 – user7358693
*这会导致在每个缓慢的请求上创建新的事务*:不,它不慢。从你的脑海中解脱出来。 –
另外,如果您使用的是Java EE容器,那么您应该使用JPA和声明式事务处理。自己启动和提交hibernate事务正是Java EE允许避免的关键之一。 –