Возврат сущности с использованием критериев - PullRequest
0 голосов
/ 05 апреля 2011

[Hibernate] Возврат сущности с использованием критериев

Привет!Из-за моего плохого английского я прямо покажу свою проблему с примерами.

У меня есть две сущности: продукт и категория (один продукт связан с одной категорией).Моя проблема с этим критерием:

Criteria crit = createCriteria( Product.class, "prod" );  
crit.createAlias( "prod.category", "cate" );  
crit.add( Restrictions.eq( "cate.name", "TEST" ) );  
crit.add( Restrictions.eq( "prod.status", "ON" ) );  
List< Product > list = crit.list();  

Это автоматически возвращает все атрибуты Продукт И Категория , но я хочу ТОЛЬКО Продукт .HQL отлично работает:

select prod 
from   Product prod join Category cate 
where  cate.nome = 'TEST' and prod.status = 'ON'

Но мне нужно это с критериями!Как это возможно?Обс .: Использование проекций нецелесообразно, поскольку сущности имеют около 30 атрибутов каждый.Большое спасибо.

Ответы [ 3 ]

1 голос
/ 05 апреля 2011

Возможно, вы используете свойство fetch = eager или lazy = false. Попробуйте проверить значения свойств и изменить их соответствующим образом.

1 голос
/ 05 апреля 2011

Использование DistinctRootEntityResultTransformer:

crit.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);
0 голосов
/ 08 апреля 2011

Попробуйте переопределить режим выборки для этого критерия, добавив

crit.setFetchMode("category", FetchMode.LAZY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...