Liferay服务构建器最后修改

时间:2018-04-24 22:50:58

标签: liferay liferay-6 liferay-service-builder

有人知道如何从表中修改最后一行吗? 例如:

我有一个带有“Car”实体的Service Builder,该实体有一个名为“LastModified”的列。我想要的东西能得到一辆“Car”(最后一辆车改装)。

我不知道用where子句创建一个finder是一个好习惯。 谢谢!

1 个答案:

答案 0 :(得分:1)

首先,服务构建器实体有一个名为" modifiedDate"的列。默认情况下。只是想确保您了解这一点,这样您就不会创建冗余列:" LastModified"和" modifiedDate"。

其次,您可以使用自定义SQL查询或动态查询来获取具有最新modifiedDate的Car。两种方法都记录在案:

就个人而言,我首先尝试动态查询方法(利用hibernate的标准API)。我认为它稍微简单一些。

在你的finder方法中,你可以这样做:

    Order order = OrderFactoryUtil.desc("modifiedDate");

    DynamicQuery carQuery = DynamicQueryFactoryUtil.forClass(Car.class).addOrder(order).setLimit(0, 1);

    List<Car> cars = CarLocalServiceUtil.dynamicQuery(carQuery);

setLimit(0,1)将查询结果限制为仅第一个Car。