0

我想问另一个关于 vaadin jpacontainer 的问题。

  1. 如果我有一个“人”jpacontainer,将它绑定到一个表,然后我做这样的事情:

    person.getItem(1).getItemProperty("name").getValue();
    person.getItem(2).getItemProperty("name").getValue();
    

    这是否意味着我打开数据库连接,然后查询“从 id = 1 的人中选择名称”然后关闭连接,然后对下一个 id 执行相同操作?或者连接总是打开的?或者是什么?

  2. person 表有 +- 500.000 条记录。如果我想像这样更新一条记录:

    person.getItem(1).getItemProperty("name").setValue("John");
    

    完成此操作大约需要 3 秒。有没有办法更快地做到这一点?

4

1 回答 1

1

我认为您的问题更多地与优化数据库有关,而与 Vaadin 的关系不大。

这是否意味着我打开数据库连接,然后查询“从 id = 1 的人中选择名称”然后关闭连接,然后对下一个 id 执行相同操作?或者连接总是打开的?或者是什么?

当您初始化 JPA EntityManagerFactory 时,您将传入一个数据源。您的数据源将处理连接池。

person 表有 +- 500.000 条记录......这大约需要 3 秒。有没有办法更快地做到这一点?

您应该在此处查看优化性能的数据库方法。将您的 JPA 日志记录设置为 FINE 并查看输出 JPQL。您将能够将其用作提示您可以采取哪些措施来提高性能。也许添加索引或检查其他瓶颈会有所帮助

于 2013-04-26T18:56:26.807 回答