0

我有一张旧表,里面有大约 170 万条记录。我正在使用 Liferay 的服务构建器 api 将这些记录插入到 Liferay 的表中,按照各地的建议使用 Liferay 的服务 api 来处理 Liferay 的表。

最初我使用 (Entity)LocalServiceUtil.getEntities(-1,-1) 来获取所有记录并一一插入,我意识到一次读取 170 万条记录是愚蠢的。

然后我从数据库中读取了 5000 个增量的记录。虽然这很有效,但它正在度过自己的美好时光。有没有其他方法可以更快地完成这个过程?或者不同的 delta 值会解决问题吗?

4

1 回答 1

0

确实应该使用 API 来访问 Liferay 的数据库。

但重要的是要知道为什么要这样做:

  • 因为数据库布局没有记录,并且可能在次要版本之间更改,恕不另行通知。
  • 因为您可能会忽略导致虚假错误的隐式约束。
  • 因为更改正在运行的 Liferay 门户的数据库可能会导致错误的缓存条目。

但如果这些都不适用,因为

  • 您正在填写实体的表格(知道确切的布局)和
  • 你停止了正在运行的 Liferay 门户

那么您可以使用数据库的功能进行批量操作,而不是使用您的服务。

于 2015-05-18T20:16:49.790 回答