Я собираюсь сделать удар в этом.В зависимости от конструкции вашего запроса, вы можете возвращать строки более одного раза.Это можно устранить с помощью преобразователя результата.
Criteria criteria = ...
// Build your query
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // Ensure no duplicates
Мне пришлось использовать это в нескольких сложных запросах.