我创建了自定义实体员工.现在我想为这个实体添加监听器,以便我可以跟踪添加/编辑/删除员工操作.
在Liferay中,对于像Blogs,Group,User等的门户网站,我们可以添加类似的属性
value.object.listener.com.liferay.portal.model.Group=com.smb.test.hook.listeners.GroupListener
在portal.properties
via hook-plugin中.
但对于自定义实体,这种方法似乎不起作用.
任何帮助,将不胜感激.
对于自定义实体,我们需要添加listener属性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
是正确的liferay方法.
这是service-ext.properties
文件的位置:
这是我的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>