Группировка на основе того, является ли ассоциация нулевой

У меня есть объект A, который имеет необязательные отношения «многие к одному» с объектом B.

Я хочу найти количество entityA, связанное с entityB, и общее количество в одном запросе. Как я это сделал.

Например, экземпляры a1, a2, a3, a4 типа entityA и b1, b2 и b3 типа entityB.

a1 связан с b1. a2 и a3 связаны с b2. а4 не связано.

Поэтому я хочу критерии, которые дадут мне результат

всего объектов = 4 всего объектов по отношению к объекту B = 3


person Community    schedule 20.06.2012    source источник


Ответы (1)


Я могу сказать, что вы немного абстрагируете код, но вы хотите что-то вроде этого.

    Criteria criteria = session.createCriteria(EntityA.class);
    criteria.createAlias("entityBList", "entityB")
        .setProjection(Projections.rowCount())
        .add(Restrictions.eq("entityB", 3); 
person carbontax    schedule 20.06.2012
comment
мы не хотим добавлять ограничение entityb=3. Мы говорим о том, что счет оказался равным 3. - person ; 20.06.2012
comment
вам нужно опубликовать больше информации. какой код вы пробовали? И сколько столбцов вы хотите получить в результате? Не ясно - person carbontax; 21.06.2012