Liferay使用Service API导入数百万个数据

时间:2015-05-18 13:59:06

标签: liferay liferay-service-builder liferay-6.2

我有一张遗留表,里面有大约170万条记录。我正在使用Liferay的服务构建器api将Liferay桌面上的这些记录按照建议在任何地方插入,以使用Liferay的服务api来处理Liferay的表格。

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

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

1 个答案:

答案 0 :(得分:0)

您应该使用API​​访问Liferay数据库。

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

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

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

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

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