Я получил эту ошибку шесть вызовов глубоко в коде Hibernate:
Unexpected call to partialFlushEnd; expecting partialFlushStart
То, что GitHub говорит мне, происходит от здесь . Моя вызывающая функция -
public List<Drug> getDrugs(String drugName) throws DAOException {
Criteria searchCriteria = sessionFactory.getCurrentSession().createCriteria(Drug.class, "drug");
if (drugName != null) {
SimpleExpression eq = Restrictions.eq("drug.name", drugName);
searchCriteria.add(eq);
}
return (List<Drug>) searchCriteria.list(); // throws
}
. Раньше я не выполнял никакой ручной очистки, но я могу решить эту проблему, добавив
sessionFactory.getCurrentSession().flush();
непосредственно перед вызовом searchCriteria.list()
.
Я не понимаю, почему это решает проблему. Ошибка гибернации не очень информативна. Как я могу понять, когда сеанс должен быть сброшен?