Критерии Отображение списка размером 1, когда нет записей - PullRequest
2 голосов
/ 11 декабря 2010

У меня есть сомнения относительно критериев гибернации.

Я получаю размер списка равным 1, когда в списке нет записей. Когда я печатаю список, он отображается как список [null].

Мой код:

final Double depositAmount = (Double)session.createCriteria(vardhanDep.class)
        .add(Restrictions.eq("userDetByCrtbyUserid", userid))
        .add(Restrictions.eq("delflag","0"))
        .setProjection(Projections.sum("amount"))
        .list().get(0);

Помогите мне решить эту проблему

1 Ответ

2 голосов
/ 11 декабря 2010

Как уже упоминал Аффе, это именно то, что и ожидалось. Projection.sum на самом деле является так называемой агрегированной проекцией, то есть она будет выполнять агрегирование (например, group by в SQL) для всех возвращаемых записей. Следовательно, Projection.sum в вашем примере вычисляет сумму поля amount во всех возвращенных записях (то есть всех записях, которые соответствуют вашим критериям). Даже если ни одна запись не соответствует вашим критериям, при суммировании будет вычислена сумма, которая, конечно, будет равна «0», поскольку суммировать нечего. Поэтому проекция всегда будет возвращать запись, а также всегда только одну запись, несмотря на количество записей, соответствующих вашим критериям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...