Hibernate query.list() method is returning empty list instead of null value

Reddy picture Reddy · Aug 30, 2010 · Viewed 47.1k times · Source

When there are no rows, both query.list() and criteria.list() are returning empty list instead of a null value.

What is the reason behind this?

Answer

Péter Török picture Péter Török · Aug 30, 2010

The reason is not to force null checks in client code, in consistency with Effective Java 2nd Edition, Item 43: Return empty arrays or collections, not nulls.

This makes the client code simpler and less error-prone (and most likely the method implementation as well).

The null-return idiom is likely a holdover from the C programming language, in which array lengths are returned separately from actual arrays. In C, there is no advantage to allocating an array if zero is returned as the length.