我正在开发一个部署为WAR的portlet。数据库模型由服务构建器创建。如何在安装WAR时将初始数据模型插入数据库?
答案 0 :(得分:1)
您可以将此作为StartupAction,在插件启动时执行(读取:部署期间和后续服务器启动期间)或作为UpgradeAction。
一个很好的例子是Liferay CE附带的sevencogs-hook,包含源代码。这是作为UpgradeAction实现的 - 例如首次启动时,您的数据库内容将“升级”以包含sevencogs示例数据。
答案 1 :(得分:1)
使用属性
向项目添加portal.properties
文件
application.startup.events=com.my.project.MyStartupAction
并将启动导入视为SimpleAction的扩展:
package com.my.project;
import com.liferay.portal.kernel.events.ActionException;
import com.liferay.portal.kernel.events.SimpleAction;
public class MyStartupAction extends SimpleAction {
@Override
public void run(String[] arg0) throws ActionException {
if(startupDataNotExist()) {
createStartupData();
}
}
...
答案 2 :(得分:0)
您也可以使用UpgradingProcess来完成此操作。 Here是分步说明