Критерии объединения не работают на составной таблице - PullRequest
1 голос
/ 03 марта 2011

Я не могу получить два свойства в одном вызове с помощью выбора в таблице составного встраиваемого ключа.Я сначала беру отсчет, а потом пейджинговую.Та же логика используется повсюду на сайте.Я получаю ошибку ниже с запросом.Действительно потеряно здесь

1 Ответ

1 голос
/ 03 марта 2011

Вы не можете создавать подкритерии для встроенного объекта.Создание подкритериев сопоставляется с добавлением объединения в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...