Когда вы делаете это с NamedQuery
, базе данных нужно только отправить список с содержимым этого поля обратно в приложение, а не полные сущности (все столбцы таблицы).
С другой стороны, если сущности уже находятся в кэше вашей платформы ORM, то для получения сущностей ему даже не нужно вообще идти в базу данных.
Может также оказаться, что ваша платформа ORM достаточно умна, чтобы понимать запрос, так что она может выполнять запрос из своего кэша вместо перехода в базу данных.
Что работает лучше всего, зависит от ситуации в вашем приложении и используемой вами платформы ORM. Попробуйте оба метода, позвольте своей структуре ORM регистрировать, что она делает, и просматривайте журнал, чтобы увидеть, что он делает, и определить, что лучше для вашего конкретного приложения.