Przenieś dziś przez jakiś kod, który wykorzystuje Hibernate do wykonania zapytania. Kwerenda używa wartości przesłanej z formularza. Zastanawiało mnie, czy ten rodzaj kodu "oczyszcza" jego dane wejściowe.Czy uśpienie wejścia funkcji hibernacji createCriteria()?
public List<School> search(String query) {
Session session = this.getCurrentSession();
query = "%" + query + "%";
Criteria criteria = session.createCriteria(getPersistentClass());
criteria.createAlias("country", "a");
Criterion nameCriterion = Restrictions.ilike("name", query);
Criterion cityCriterion = Restrictions.ilike("city", query);
Criterion countryCriterion = Restrictions.ilike("a.name", query);
Criterion criterion = Restrictions.or(Restrictions.or(nameCriterion, cityCriterion), countryCriterion);
criteria.add(criterion);
return criteria.list();
}
Czy to jest bezpieczne?
Tak się składa, że właśnie patrzę na wygenerowany kod SQL (co przypomniało mi, żebym sprawdził te odpowiedzi) i masz absolutną rację. – Marvo