В настоящее время в моем проекте настроен режим гибернации. Это хорошо работает для большинства вещей. Однако сегодня мне нужно было запрос вернуть пару сотен тысяч строк из таблицы. Это было ~ 2/3 от общего числа строк в таблице. Проблема в том, что запрос занимает ~ 7 минут. Используя прямой JDBC и выполняя то, что я предполагал, было идентичным запросом, это занимает <20 секунд. Из-за этого я предполагаю, что я делаю что-то совершенно не так. Я перечислю код ниже. </p>
DetachedCriteria criteria =DetachedCriteria.forlass(MyObject.class);
criteria.add(Restrictions.eq("booleanFlag", false));
List<MyObject> list = getHibernateTemplate().findByCriteria(criteria);
Любые идеи о том, почему это будет медленно и / или что я мог бы сделать, чтобы изменить его?