如何在liferay中为Custom实体创建监听器?

时间:2014-08-13 13:49:16

标签: liferay hook liferay-6

我创建了自定义实体员工。现在我想为这个实体添加监听器,以便我可以跟踪添加/编辑/删除员工操作。

在Liferay中,对于博客,群组,用户等门户网站,我们可以添加

等属性
value.object.listener.com.liferay.portal.model.Group=com.smb.test.hook.listeners.GroupListener
通过hook-plugin在portal.properties

但对于自定义实体,这种方法似乎不起作用。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:6)

对于自定义实体,我们需要在service-ext.properties而不是portal.properties文件中添加侦听器属性。

对于我的员工实体,我在service-ext.properties文件中添加了以下属性:

value.object.listener.com.smb.employee.model.Employee=com.smb.employee.hook.listeners.EmployeeListener

注意:我们需要在service-ext.properties文件之外的src文件夹中手动创建service.properties文件。我们可以更新service.properties但由于它会自动生成,因此我们的更改会丢失,因此service-ext.properties是正确的生命周期方法。

以下是service-ext.properties文件的位置:

where does service-ext.properties should be created

这是我的service.xml

<service-builder package-path="com.smb.employee">
    <author>Suyash</author>
    <namespace>smb</namespace>

    <entity name="Employee" local-service="true" remote-service="true">

        <!-- PK fields -->

        <column name="fooId" type="long" primary="true" />

        <!-- Audit fields -->

        <column name="companyId" type="long" />
        <column name="userId" type="long" />
        <column name="userName" type="String" />
        <column name="createDate" type="Date" />
        <column name="modifiedDate" type="Date" />

        <!-- Other fields -->

        <column name="field1" type="String" />
        <column name="field2" type="boolean" />
        <column name="field3" type="int" />
        <column name="field4" type="Date" />
        <column name="field5" type="String" />

        <!-- Order -->

        <order by="asc">
            <order-column name="field1" />
        </order>

        <!-- Finder methods -->

        <finder name="Field2" return-type="Collection">
            <finder-column name="field2" />
        </finder>
    </entity>

    </entity>
</service-builder>