Порядок записи по запросу с делами в JPA CriteraBuilder - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть запрос типа:

select
    emp.name,
    emp.vehicle_id,
    vehicle.model,
    vehicle.color
from
    emp
left outer join
    vehicle
        on emp.vehicle_id = vehicle.vehicle_id
where
    lower(emp.name) = 'james'
    or lower(vehicle.model) = 'ford'
order by (case  
            when lower(emp.name) = 'james' then 1
            when lower(vehicle.model) = 'ford' then 2
        end);

Я хочу написать это, используя CriteraBuilder.

Поскольку я новичок в этом, я могу сделать где предложение, например:

public static Specification<EmpDetails> byVehicleModel(String vehicleModel) {
    return (root, query, cb) -> {
      // fetching vehicle from root
      Vehicle vehicle = root.joinSet("vehicle", JoinType.LEFT);
      return cb.and(cb.equal(cb.lower(vehicle.get("model")), vehicleModel.toLowerCase()));
    };
}

Но как мне добавить часть Order By с Cases, упомянутую выше. Я не могу найти достаточно примеров для этого.

Пожалуйста, предложите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...