我想问另一个关于vaadin jpacontainer的问题。
如果我有一个“人”jpacontainer,将它绑定到一个表,然后我做这样的事情:
person.getItem(1).getItemProperty("name").getValue();
person.getItem(2).getItemProperty("name").getValue();
这是否意味着我打开数据库连接,然后查询“从id = 1的人中选择名称”然后关闭连接,然后为下一个ID执行相同操作?或连接始终打开?或者是什么?
人员表有+ - 500.000条记录。如果我想更新这样的单个记录:
person.getItem(1).getItemProperty("name").setValue("John");
这需要大约3秒钟。有没有办法更快地做到这一点?
答案 0 :(得分:1)
我认为你的问题更多地与优化数据库有关,而与Vaadin没有多大关系。
这是否意味着我打开数据库连接,然后查询“从id = 1的人中选择名称”然后关闭连接,然后为下一个ID执行相同操作?或连接始终打开?或者什么?
初始化JPA EntityManagerFactory时,您将传入数据源。您的数据源将处理连接池。
人员表有+ - 500.000条记录......这需要大约3秒钟。有没有办法更快地做到这一点?
您应该在此处查看数据库优化性能的方法。将JPA日志记录设置为FINE并查看输出JPQL。您将能够将其用作提示,以便您可以采取哪些措施来提高性能。也许添加索引或检查其他瓶颈会有所帮助