Гибернация: проекция много-к-одному в критериях - PullRequest
3 голосов
/ 13 октября 2009

Недавно я впервые играю с hibernate Criteria API.

Я пытался сделать эквивалент этого HQL

"выберите t.userTbl из Задачи t"

Свойство userTbl является многозначным от Задачи. Отношение Task.userTbl лениво.

Итак, я придумал это

Criteria criteria = session.createCriteria( Task.class, "t" );
criteria.setProjection( Projections.property( "t.userTbl" ) );
List results = criteria.list();

К сожалению, это отличается от HQL.

В HQL, хотя отношение userTbl установлено на ленивое отображение, HQL охотно выбирает и материализует непрокси-объекты UserTbl.

Однако в Критерии я получаю список прокси, которые мне не нужны. Я возился с setFetchMode, но это было не совсем правильно. У кого-нибудь есть идеи, как правильно выполнить вышеупомянутое в критериях и вернуть не-прокси как HQL?

Спасибо.

1 Ответ

0 голосов
/ 14 октября 2009

Попробуйте принудительно объединить класс задачи и userTbl.

...