Вы не можете создавать подкритерии для встроенного объекта.Создание подкритериев сопоставляется с добавлением объединения в SQL-запрос.Вы не создаете объединения во встроенных полях.
Также, пожалуйста, используйте константы, а не магические значения для типов соединений:
criteria.createCriteria("ub.badge", "b", Criteria.LEFT_JOIN);
гораздо более читабельно, чем
criteria.createCriteria("ub.badge", "b", 1);
Вы не показали нам свои сущности и их отношения, но его код мог бы работать лучше:
Criteria criteria = userBadgeRepository.getCritieria(); // sic
criteria.createCriteria("userBadgePK.badge", "b", Criteria.INNER_JOIN);
// you don't have foreign keys pointing to nowhere, have you?
// So an INNER join is preferred here
criteria.createCriteria("userBadgePK.user", "u", Criteria.INNER_JOIN);