Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Liferay使用服务API导入数百万数据_Liferay_Liferay Service Builder_Liferay 6.2 - Fatal编程技术网

Liferay使用服务API导入数百万数据

Liferay使用服务API导入数百万数据,liferay,liferay-service-builder,liferay-6.2,Liferay,Liferay Service Builder,Liferay 6.2,我有一个遗留表,其中包含大约170万条记录。我正在使用Liferay的service builder api在Liferay的表中插入这些记录,这是根据建议everywhere使用Liferay的service api处理Liferay的表 最初,我使用(Entity)LocalServiceUtil.getentitis(-1,-1)获取所有记录并逐个插入,我意识到一次读取170万条记录是愚蠢的 然后我从数据库中读取5000个增量的记录。虽然这是可行的,但它正在享受自己的甜蜜时光。是否有其他方

我有一个遗留表,其中包含大约170万条记录。我正在使用Liferay的service builder api在Liferay的表中插入这些记录,这是根据建议everywhere使用Liferay的service api处理Liferay的表

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


然后我从数据库中读取5000个增量的记录。虽然这是可行的,但它正在享受自己的甜蜜时光。是否有其他方法加快此过程?或者不同的delta值可以解决问题吗?

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

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

  • 因为数据库布局没有文档记录,在不同的小版本之间可能会更改,恕不另行通知
  • 因为您可能会忽略导致虚假错误的隐式约束
  • 因为更改正在运行的Liferay portal的数据库可能会导致错误的缓存条目
但如果这些都不适用,因为

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

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

是否使用ServiceBuilder访问旧表?正如您所说:使用Liferay的服务api来处理Liferay的表是的。我对源和目标都使用service builder。目标表是Liferay表?是的。我能够使用ext-spring.xml中的配置从外部数据源提取数据,并使用默认数据源将数据推送到Liferay中。