0

アプリを使用JPAしてFacebookログインしています。ユーザーがサーバーにログインした後、各ユーザーがFacebookID でデータベースに存在するかどうかがチェックされます。毎回クエリforを実行するループを作成しました。selectこのアプローチは遅いです。より速くするためのより良い方法はありますか?

コードは

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

1 に答える 1

0

代わりに、IN を使用して単一のクエリを実行できます。ただし、キャッシュが有効になっている場合、フレンドがキャッシュに存在する可能性が高い場合は、id によるクエリが最も高速な方法です。

Select f from Friend f where f.id in :ids
于 2013-07-08T13:51:30.183 に答える