У меня есть запрос с использованием объекта Ebean Finder. это рабочая версия:ebean query with setParameter
public static Finder<Long, Device> find = new Finder<>(Long.class, Device.class);
.
public static Page<Device> find(int page, String sorting, String order) {
return
find.where()
.orderBy(sorting + " " + order)
.findPagingList(10)
.setFetchAhead(false)
.getPage(page);
}
, но теперь я хочу, чтобы сделать его SQLInjection безопасным использованием функции setParameter, я попытался это, но ничего не вышло. было бы здорово узнать, что у меня не так.
public static Page<Device> find(int page, String sorting, String order) {
return
find.where()
.orderBy(":sorting :order")
.setParameter("sorting", sorting)
.setParameter("order", order)
.findPagingList(10)
.setFetchAhead(false)
.getPage(page);
}
UPDATE:
как упомянуто here,
"Проблема в том, вы не можете использовать именованные параметры, чтобы установить порядок в HQL (или SQL) запрос."
Если это правда, это делает мой код уязвимым для SQL-инъекции! так что вы предлагаете?
спасибо за исходный код, это показывает, что для свойства OrderBy невозможно связать параметры! – behzad