2013-07-05 3 views
0

Я использую JPA и Facebook логин для своего приложения. После входа пользователя на сервер проверяет, находится ли каждый пользователь в нашей базе данных на Facebook id. Я создал цикл for, который каждый раз выполняет запрос select. Этот подход медленный. Есть ли лучший способ сделать это быстрее?Оптимизировать сотни запросов на выбор в JPA

Код

for (User friend : friends) { 
     User current = userManager.find(friend.facebookId); 
If (null != current) { friend.setId(current.getId);}} 
+0

Просьба указать фрагмент кода запроса и цикл for, – nif

+1

Просьба уточнить. Если я являюсь пользователем и я вхожу в систему, сколько запросов запускается? –

+0

Здравствуйте, я только что положил код. благодаря – Yangrui

ответ

0

Можно выполнить один запрос с IN вместо этого. Однако при включенном кешировании запрос по идентификатору может быть самым быстрым способом, если друзья, вероятно, будут в кеше.

Select f from Friend f where f.id in :ids