Liferay Service Builder получает последние изменения - PullRequest
0 голосов
/ 25 апреля 2018

Кто-нибудь знает, как изменить последний ряд из таблицы?Например:

У меня есть Service Builder с сущностью «Car», у этой сущности есть столбец с именем «LastModified».Я хочу что-то, что получит тот "Автомобиль" (последняя измененная корзина).

Я не знаю, является ли создание искателя с предложением where хорошей практикой.Спасибо!

1 Ответ

0 голосов
/ 26 апреля 2018

Во-первых, у сущностей строителя сервисов есть столбец с именем «ifiedDate »по умолчанию. Просто убедитесь, что вы знаете об этом, чтобы не создавать избыточные столбцы: «LastModified» и «ifiedDate ».

Во-вторых, вы можете использовать либо собственный SQL-запрос, либо динамический запрос, чтобы получить автомобиль с самой последней измененной датой. Оба подхода документированы:

Лично я бы сначала попробовал подход с динамическими запросами (используя API критериев hibernate). Я думаю, что это немного проще.

В вашем методе поиска вы можете сделать что-то вроде этого:

    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) ограничивает результат запроса только первым автомобилем.

...