2010-08-31 3 views
0

Я хочу, чтобы извлечь свойство коллекции с использованием критериевКак я могу получить свойство коллекции с использованием критериев Апи

public class A { 
     private Collection<B> property 
     // getters and setters 
    } 
    public class B { 
     private int status 
     // getters and setters 
    } 

Мой критерий код выглядит следующим образом:

Criteria cr = getSession().createCriteria(A.class)  
cr.createAlias("property", "prop") 
cr.add(Restrictions.eq("prop.status", status)); 
cr.setProjection(Projections.property("prop")); 
cr.list(); 

Очевидно, этот код не Я хотел просто продемонстрировать свои намерения. Я знаю, как добиться этого, используя HQL, но я должен использовать API критериев. Это то, к чему я стремлюсь, возможно, с использованием критериев?

ответ

0

К сожалению, того, чего я хочу достичь, невозможно с критериями спящего режима. Если кому-то нужно что-то подобное, вы должны создать namedQuery, столь же ужасный, как это для вас, или просто использовать hql.

Peter

0

Что не так с этим решением?

Criteria cr = getSession().createCriteria(B.class); 
cr.add(Restrictions.eq("status", status)); 
cr.list(); 
+0

Мне нужна коллекция A.property не только всех экземпляров B в БД с определенным статусом. Мне нужно все B, связанное с A с предоставленным статусом. К сожалению, B не имеет ссылок на A (я бы не задал вопрос, если бы это было так), только соединение A 0 .. * B С уважением, Peter – pmanolov

Смежные вопросы