有人知道如何从表中修改最后一行吗? 例如:
我有一个带有“Car”实体的Service Builder,该实体有一个名为“LastModified”的列。我想要的东西能得到一辆“Car”(最后一辆车改装)。
我不知道用where子句创建一个finder是一个好习惯。 谢谢!
答案 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。