Причина в том, что он позволяет вам решить, как вы хотите ваши данные. Как видно из wiki , вы можете получить только первый объект с помощью get () или список идентификаторов с помощью asKeyList (). Они признают, что использование в качестве List () может быть дорогостоящим для больших наборов .
Причина, по которой я понимаю, заключается в повторном использовании объекта Query. Они позволяют вам создавать сложный объект Query (с фильтрами и тому подобное) и извлекать результаты при необходимости. Вы можете даже получить разные наборы результатов из одного и того же запроса, поскольку перечисленные методы (asList и т. Д.) Не влияют на объект запроса.
Если вы будете многократно использовать объекты запроса и не будете возвращать огромные наборы данных (что вам не следует делать слишком счастливо), это может быть полезно.