Правильным решением является использование экземпляра EntityManager
.
entityManager.getReference(YourClass.class, id);
Поскольку этот метод принимает только один идентификатор, вам необходимо написать собственный запрос SQL
(используя HQL
или нативное SQL
) для получения только идентификаторов необходимых объектов.
Имея List<T> ids
, вы можете
final List<YourClass> proxyValues =
ids.stream()
.map(id -> entityManager.getReference(YourClass.class, id))
.collect(Collectors.toList());
Говоря о производительности,это совершенно нормально, так как доступ к базе данных будет осуществляться один раз, извлекая небольшой объем данных.