嗨,我有一个应用程序,其中当请求带有一个数组时,我必须从表中选择数据,如果找不到,则生成新值并插入表中,然后再次循环统计检查下一个值等等. 对于一个新请求,这将完成大约 50000 次。
我在用
public void save(Object obj,Session session) {
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(obj);
//session.saveOrUpdate(obj);
//session.flush();
session.clear();
tx.commit();
}
catch (HibernateException e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
if(tx!=null){
tx.rollback();
}
}
}
提交方法,并为每个生成的新值调用它。就像每个请求它被调用 50000 次。我必须为每个值提交我的事务,因为我不希望在表中生成重复值,所以如果一个新请求带有相同的数据并且前一个正在运行,则应该从表中获取该值。所以我认为我将不得不提交每个事务。但是如果我使用经典的 JDBC 而不是休眠,这会变得非常快吗?与它相比,我做错了什么吗?因为我认为大部分时间都花在了开始和一次又一次地提交事务上。