删除liferay中的多行
Delete multiple rows in liferay
我有一个名为 xyz 的 table 有各种记录
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
当您在 service.xml 中声明一个 finder 时,服务构建器过程也会生成基于相同 finder 的 delete 方法。
搜索,您会找到一个方法 XyzPersistence.deletebyuserid()
可以在XyzLocalServiceImpl中新建一个方法来调用持久层删除,ant service-builder
,就可以在localservice层实现海量删除
无法通过查询批量删除(据我所知)。原因是 liferay 通常有(允许)一些用于删除实体回调的钩子。此外,还有一些 finder-cache 可能无法正确跟踪这些批量删除。
您应该在 *ServiceImpl 中实现自定义批量删除方法,以处理一个事务中的那些批量删除(迭代删除)。
我有一个名为 xyz 的 table 有各种记录
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
当您在 service.xml 中声明一个 finder 时,服务构建器过程也会生成基于相同 finder 的 delete 方法。
搜索,您会找到一个方法 XyzPersistence.deletebyuserid()
可以在XyzLocalServiceImpl中新建一个方法来调用持久层删除,ant service-builder
,就可以在localservice层实现海量删除
无法通过查询批量删除(据我所知)。原因是 liferay 通常有(允许)一些用于删除实体回调的钩子。此外,还有一些 finder-cache 可能无法正确跟踪这些批量删除。 您应该在 *ServiceImpl 中实现自定义批量删除方法,以处理一个事务中的那些批量删除(迭代删除)。