首页 > 解决方案 > 删除liferay中的多行

问题描述

我有一个名为 xyz 的表,其中包含各种记录

在此处输入图像描述

service.xml 具有以下提到的条目

<entity name="xyz" local-service="true" remote-service="true" cache-enabled="true" json-enabled="true">
        <column name="sno" type="int" primary="true" id-type="identity"></column>
        <column name="name" type="String"></column>
        <column name="address" type="String"></column>
        <column name="userid" type="int"></column>

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

现在我想删除所有用户 ID 为 10 的用户

使用服务构建器,我们可以执行以下操作

List<xyz> xyzList = XyzLocalServiceUtil.findbyuserid(10);
if(xyzList!=null && !xyzList.isEmpty()){
    for (xyz xy : xyzList) {
      xyzListLocalServiceUtil.deleteXyz(xy.getSno());
    }
}

但是我想通过执行下面提到的查询一次性删除所有行

delete from xyz where userid =10;

与此等效的 liferay 服务构建器是什么?

我正在使用 liferay-6.2-ce-ga3

标签: liferayliferay-6liferay-service-builder

解决方案


当您在 service.xml 中声明查找器时,服务构建器过程还会基于同一查找器生成删除方法。

搜索你会发现一个方法为 XyzPersistence.deletebyuserid()

您可以在 XyzLocalServiceImpl 中构建一个新方法来调用持久层中的删除ant service-builder,您将在本地服务层中进行大量删除。


推荐阅读