在JPA中优化数百个选择查询

时间:2013-07-05 19:13:05

标签: java sql java-ee jpa

我正在使用JPAFacebook登录我的应用。用户登录后,通过Facebook id检查每个用户是否在我们的数据库中。我创建了一个for循环,每次执行select查询。这种方法很慢。有没有更好的方法让它更快?

代码是

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

1 个答案:

答案 0 :(得分:0)

您可以使用IN执行单个查询。但是,启用缓存后,如果朋友可能在缓存中,则通过id查询可能是最快的方法。

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