Привет, у меня есть приложение, в котором я сначала проверяю значение в таблице БД, если он не генерирует новое значение и вставляет его в БД, этот цикл проходит миллион раз, как я могу ускорить его?Вызов вставки несколько раз в спящий режим?
в моем рабочем классе: -
session=HibernateSessionFactory.getSession();
for(----loop
i check
i generate
then:-
MyTable myTable=new MyTable();
myTable.setName("dasdas");
myTable.setww("ss");
myTable.setaa("daaasdas");
hibernateRepositoy.save(dgCcno,session);
}
сохранить метод я другой класс: -
public void save(Object obj,Session session) {
Transaction tx = null;
try {
tx = session.beginTransaction();
session.saveOrUpdate(obj);
session.flush();
session.clear();
tx.commit();
}
catch (HibernateException e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
if(tx!=null){
tx.rollback();
}
}
catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
}
}
как я могу ускорить это, или это правильный подход?
Добавлено: - я не могу использовать пакетное обновление, я должен вставить значение сразу, вызывают значения в следующем запросе выборки может быть такой же .. и должны дать значение из БД затем
Вы можете использовать пакет гибернации. Подробнее см. Http://stackoverflow.com/questions/8972853/hibernate-batch-insert-batch-update. – tibtof
@tibtof no i can not, мне нужно сразу вставить значение, потому что значения в следующем запросе выбора могут быть одинаковыми .. и должны дать значение из БД, а затем – Harinder
вам нужно немедленно зафиксировать? Я думаю, что если вы используете только одну транзакцию, это будет намного быстрее. – tibtof