数据库中存在缓慢问题的Java对象列表

数据库中存在缓慢问题的Java对象列表,java,oop,arraylist,Java,Oop,Arraylist,我正在编写java代码,一切都很好,但我开始在GUI中试验一些缓慢的问题。这是我的代码: //some code.. //get articles from database //in this case listOfArticles contains 1000 Objects listOfArticles = service.getArticles(); //loop through listOfArticles to get another data from my database f

我正在编写java代码,一切都很好,但我开始在GUI中试验一些缓慢的问题。这是我的代码:

//some code..
//get articles from database
//in this case listOfArticles  contains 1000 Objects
listOfArticles = service.getArticles();

//loop through listOfArticles to get another data from my database
for (Article article: listOfArticles) {

//each list may conatins 100 to 200 Objects
//in this case I'm going to the database 1000 times and this maybe the cause of the Slowness 
listOfInfo = service.getInfoById(article.getId());

//...some code
}
在GUI中,我正在等待20秒到30秒以获得结果,您是否有任何建议来优化响应时间或避免访问我循环中的数据库


提前感谢

为了减少数据库访问次数,请使用所有文章id填充一个列表,然后创建一个具有以下签名的方法(适合您的需要):


同样,在不了解更多代码的情况下,我无法更具体地说明。

要减少数据库访问次数,请使用所有文章id填充列表,然后创建具有以下签名的方法(根据您的需要):


同样,在不了解更多代码的情况下,我不能说得更具体。

我的回答看起来很模糊,但我给你两个建议:

  • 使用(例如一次显示50个项目)或使用一些无限滚动
  • 使用一次返回多篇文章的方法。(您可以看看Bernat给出的示例)

  • 我的回答看起来很模糊,但我给你两个建议:

  • 使用(例如一次显示50个项目)或使用一些无限滚动
  • 使用一次返回多篇文章的方法。(您可以看看Bernat给出的示例)

  • 有没有可能把一大堆文章分成几块,然后只按需获取有关它们的信息?对象中不应该有图像之类的内容。当使用JPA时,需要注意得到的是什么:更重的字段,如列表。是否有可能将大的文章列表分成块,并仅以按需方式获取有关它们的信息?对象中不应包含图像等。当使用JPA时,需要注意得到的是什么:更重的字段,比如列表。
    public List<Info> getInfoByIds(List<Long> articleIdList)
    
    select i from Info i where i.ID in :idList