У меня возникли некоторые странные проблемы с построителем критериев, когда я использовал CriteriaBuilder.equal () для создания предиката и передачи его в CriteriaQuery.where (), чтобы я мог фильтровать предложение по предложению where. Все работает нормально, но когда дело доходит до части с Criteria.equal, это завершает все после этого. Я понятия не имею, как это вообще происходит.
CriteriaBuilder builder = getCurrentSession().getCriteriaBuilder();
CriteriaQuery<User> criteria = builder.createQuery(User.class);
Root<User> UserRoot = criteria.from(User.class);
Predicate predicate = builder.equal(UserRoot.get("google_id"), googleId);
criteria.select(UserRoot).where(predicate);
return getCurrentSession().createQuery(criteria).getSingleResult();
После того, как я положил отпечатки после каждой строки, они печатают до 4-ой строки, после чего все просто исчезает, оно не дает возврата. Все остальные операции, кроме критериев, работают нормально.