【问题标题】:Optimize hundreds select queries in JPA优化 JPA 中的数百个选择查询
【发布时间】:2013-07-05 19:13:04
【问题描述】:

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

代码是

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

【问题讨论】:

  • 请提供一些查询和for循环的sn-p代码,
  • 请澄清一些事情。如果我是用户并且我登录了,会运行多少个查询?
  • 你好,我刚刚放了代码。谢谢

标签: java sql jakarta-ee jpa


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2016-10-05
    • 2012-05-18
    • 2012-05-05
    • 1970-01-01
    • 2016-01-23
    相关资源
    最近更新 更多