3

我正在开发一个部署为 WAR 的 portlet。数据库模型由服务构建器创建。安装 WAR 后如何将初始数据模型插入​​数据库?

4

3 回答 3

1

您可以作为 StartupAction 执行此操作,在插件启动时执行(阅读:在部署期间和后续服务器启动期间)或作为 UpgradeAction。

一个很好的例子是 Liferay CE 附带的 Sevencogs-hook,其中包含源代码。这是作为 UpgradeAction 实现的 - 例如,在第一次启动时,您的数据库内容将被“升级”以包含 Sevencogs 示例数据。

于 2012-05-06T10:30:23.180 回答
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();
        }
    }
...
于 2012-05-06T10:34:44.260 回答
0

您也可以使用升级过程来做到这一点。以下是分步说明

于 2012-07-16T16:00:00.960 回答