0

我想编写一个动态查询,它将从将提供的行中删除值,即一行包含 6 个元素,我只想删除其中的 3 个。我如何使用 liferay 动态查询来实现这一点。我正在创建一个图书数据库和这是我的表,我在这里添加了图片。在此处输入图像描述

现在我想从第二行中删除描述和作者名让我们说。我怎么能做到这一点???以前我是这样做的

long bookId = ParamUtil.getLong(actionRequest, "bookId");
BookLocalServiceUtil.deleteBook(bookId);
SessionMessages.add(actionRequest, "deleted-book"); 
_log.info("#################Book Deleted Successfully#########################");

让我们假设我可以在删除方法中提供 bookName、description 等。

4

1 回答 1

0

执行您想要的操作的唯一且最好的方法是更新您的实体。为此,您必须首先使用 a 检索实体DynamicQuery,然后使用持久层对其进行更新。

如果您有 bookId 并且它是您的唯一标准,您还可以直接使用持久层来检索实体的 bean。

出于您的目的,我认为以下是一个很好的解决方案,在您的BookLocalServiceImpl

public void updateDescription(long bookId, String description) throws SystemException {
    Book updateMe = bookPersistence.fetchByPrimaryKey(bookId);
    updateMe.setDescription(description);
    bookPersistence.update(updateMe);
}

然后在您的控制器中简单地调用BookLocalServiceUtil.updateDescription("")并瞧,您刚刚清除了描述。

于 2015-07-30T12:37:01.593 回答